必须勾选“enable coverage”才能显示行覆盖率标记;需正确配置源码路径、激活coverage视图,并统一vitest配置以避免与cli结果不一致。

运行测试时必须勾选“Enable coverage”
WebStorm 不会自动收集覆盖率数据,哪怕你项目里装了 Jest 或 Vitest,只要没在运行配置里主动启用,编辑器里就永远看不到绿色/红色行标记。这不是插件没装好,而是开关根本没打开。
- 创建或编辑一个测试运行配置(比如
Jest或Vitest),在右上角点击「Edit Configurations…」 - 勾选
Enable coverage(不是“Run with coverage”,那个是旧版 UI 的说法) - 确保
Collect coverage from tests in指向正确的源码目录(如src/),否则覆盖率会显示为 0% - 如果用的是
Vitest,还需确认项目根目录下有vitest.config.ts且已启用coverage.enabled = true
覆盖率结果不刷新?检查套件合并策略
连续跑两次测试后发现覆盖率没变,或者新覆盖的行还是灰色——大概率是 WebStorm 把新结果“丢弃”或“没合并”进当前视图了。它默认行为不是覆盖,而是让你选。
- 首次运行带覆盖率的配置时,会弹出
Code Coverage对话框;之后若没关掉提示,每次都会弹 -
Replace active suite (r):适合想看单次精准结果(比如只测某个模块),但会清掉之前所有数据 -
Add to active suite (a):推荐日常开发使用,多次运行的结果叠加统计,“只要某行被任一测试覆盖过就算覆盖” - 误点了
Discard new coverage (c)?别慌,删掉.idea/coverage/目录重启 WebStorm 就能重来
编辑器里没颜色?确认覆盖率视图已激活
即使测试跑成功、覆盖率数据也生成了,编辑器里仍可能一片白——因为 WebStorm 默认不自动高亮,得手动“接通”这个通道。
- 运行完带覆盖率的配置后,
Coverage工具窗口应自动弹出;如果没有,按Ctrl+Alt+F6手动唤起 - 在
Coverage窗口顶部,点Activate coverage view(图标是眼睛?️),否则编辑器不渲染色块 - 项目工具窗口(Project pane)里,文件名右侧会显示百分比数字,但仅当该文件被至少一个测试引用过才出现
- 如果整个项目都灰着,先检查
node_modules是否被意外加入覆盖率路径——它不该出现在Collect coverage from设置里
为什么 vitest 覆盖率和终端里不一致?
WebStorm 调用的是自己封装的 vitest runner,不是你终端里敲 npm run test:coverage 那一套。两者配置来源不同,尤其 include/exclude 规则容易错位。
- WebStorm 读取的是运行配置里的路径设置,而 CLI 读的是
vitest.config.ts中的coverage.include - 常见坑:WebStorm 配置里填了
src/**/*.{ts,tsx},但 config 里写了include: ['src/utils/**']→ WebStorm 显示全量,CLI 只报 utils - 解决方法:统一以
vitest.config.ts为准,在 WebStorm 运行配置中把Collect coverage from改成空,让它完全委托给 Vitest 自己的配置 - 额外提醒:
console.log或debugger不影响覆盖率,但if (false) { ... }块内代码会被视为“不可达”,始终标红










