You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vitest VS Code扩展覆盖率显示0%与CLI结果不一致问题

问题

执行vitest run --coverage命令时,单元测试的代码覆盖率显示准确;但通过VS Code的Vitest扩展点击「带覆盖率运行测试」按钮,所有项均显示0%覆盖率。

项目未拆分vite.config.ts与vitest.config.ts,而是在根目录下的vite.config.ts中统一配置Vite和Vitest,配置如下:

// vite.config.ts
export default defineConfig(() => {
    // ...
    test: {
      environment: 'jsdom',
      coverage: {
        provider: 'istanbul'
      },
      globals: true
    }
}

配置文件与package.json同级,按预期应被Vitest扩展和CLI共享。package.json中相关依赖版本包括@vitest/coverage-istanbul@2.0.4、vitest@2.0.4、vite@5.3.1等。请问为何CLI与Vitest扩展的覆盖率结果存在差异?

可能的原因与解决方案

1. VS Code Vitest扩展未正确识别配置文件

配置文件在根目录,但扩展可能存在加载延迟或路径识别偏差。试试:

  • 重启VS Code,让扩展重新加载配置
  • 手动指定配置路径:打开VS Code设置(Ctrl+,),搜索「Vitest: Config」,填入./vite.config.ts

2. 扩展覆盖率配置未同步CLI设置

即使在vite.config.ts中指定了istanbul作为覆盖率提供商,扩展可能未正确读取配置。可以补充明确的覆盖率规则:

// vite.config.ts 中更新coverage配置
coverage: {
  provider: 'istanbul',
  include: ['src/**/*.{ts,tsx}'], // 根据项目实际结构调整
  exclude: ['node_modules/', 'dist/']
}

同时检查扩展设置:打开VS Code设置,搜索「Vitest: Coverage Provider」,确认选择istanbul。

3. 依赖或扩展版本适配问题

Vite 5.x与Vitest 2.x的组合可能存在扩展适配延迟。试试:

  • 将VS Code的Vitest扩展更新到最新版本
  • 确保@vitest/coverage-istanbul与vitest版本完全一致(当前均为2.0.4,后续更新需保持同步)

4. 缓存导致计算异常

Vitest或扩展的缓存可能干扰覆盖率计算,试试:

  • 删除项目根目录下的.vitest和coverage文件夹,重新运行测试
  • 打开VS Code命令面板(Ctrl+Shift+P),执行「Vitest: Clear All Caches」命令

内容的提问来源于stack exchange,提问作者natn2323

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:48:30