ctrl+alt+f6没反应是因系统热键冲突,需检查windows/linux第三方软件或macos“move focus to menu bar”设置;coverage窗口弹出后编辑器仍无颜色标记,须点击右上角?️图标激活视图;新测试未更新覆盖率是因未选择add to或replace active suite合并策略。

Ctrl+Alt+F6 按了没反应?先查系统级热键冲突
快捷键 Ctrl+Alt+F6(Windows/Linux)或 Cmd+Option+F6(macOS)是唤起 Coverage 工具窗口的唯一可靠入口,但它不是“万能钥匙”——系统可能已劫持该组合。比如 macOS 的「将显示器用作菜单栏」功能默认占用 Cmd+Option+F6,导致 WebStorm 完全收不到信号。
- Windows/Linux:检查是否被其他软件(如显卡控制面板、远程桌面工具)注册为全局快捷键
- macOS:进入 System Settings > Keyboard > Shortcuts > Mission Control,关闭「Move focus to the menu bar」选项
- WebStorm 内部验证:按
Ctrl+Shift+A打开 Find Action,输入Show Code Coverage Data,看是否能手动触发——若能,则确认是快捷键被拦截
Coverage 窗口弹出来了,但编辑器还是白的?缺了关键一步
Coverage 工具窗口和编辑器行高亮是两个独立开关。窗口开着 ≠ 编辑器染色生效。很多人跑完测试、看到覆盖率数字,却始终不见绿色/红色标记,就是因为漏点了顶部那个眼睛图标。
- 在 Coverage 工具窗口右上角找 Activate coverage view(图标是 ?️),必须点击它
- 点完后,打开的文件才会在行号边栏显示颜色:绿色 = 被执行过,红色 = 完全未执行
- 如果点了没反应,去 Project 工具窗口(
Alt+1)看文件名右侧有没有百分比数字:没有 → 当前没加载有效套件;有但无色 → 确认眼睛图标已激活且文件已打开
为什么新跑的测试没更新覆盖率?套件合并策略没选对
WebStorm 默认不自动覆盖旧数据,而是等你明确选择策略。连续运行两次带覆盖率的测试后,第二次结果不会自动叠加或替换——它就静静躺在那里,直到你手动操作。
- 首次运行后弹出对话框,选项含义是:
Replace active suite (r)清空之前所有数据,只留本次;Add to active suite (a)合并统计,“只要某行被任一测试覆盖过就算覆盖” - 日常开发推荐选
a,否则改一个函数、只测它一次,其他模块覆盖率就归零了 - 误点
c(Discard new coverage)?删掉项目下.idea/coverage/目录,重启 WebStorm 即可重来
Vitest 用户特别注意:IDE 配置和 CLI 配置必须一致
WebStorm 的 Coverage 数据来源和终端里 vitest run --coverage 输出不一致,通常不是 bug,而是两套配置没对齐。
- IDE 层:运行配置中必须勾选
Enable coverage,且Collect coverage from tests in必须指向src/,不能是dist/或node_modules/ - Vitest 层:确认
vitest.config.ts中coverage.enabled = true,且没被process.env.CI === 'true'之类条件意外关掉 - 路径映射问题:TypeScript 项目要确保
collectCoverageFrom包含**/*.ts,否则 .ts 文件即使被测试调用,也显示全红











