跳转到主要内容
使用覆盖率运行 会在对应运行时的覆盖率工具下执行运行配置,结束后读取报告,并在三个地方展示:
  • 编辑器边栏:每行一条色带。绿色表示已覆盖,黄色表示部分覆盖(不是每个分支或代码块都执行到),红色表示未覆盖。悬停色带可以看到命中次数和分支覆盖数。
  • 项目视图:每个文件和文件夹旁显示已覆盖行的百分比。
  • 覆盖率工具窗口:按文件夹和文件组织的树,带 行,% 和 分支,% 两列。点击列标题排序,在树里可以直接打开文件。

使用覆盖率运行

1

选择配置

在运行小部件中选中测试或程序配置,或者把光标放在测试或 main 函数里。
2

开始运行

使用 运行 › 使用覆盖率运行,或者在边栏运行图标的菜单、运行小部件的 更多操作 菜单里选择带覆盖率运行的那一项。使用覆盖率运行上下文配置(在 查找操作… 中,⌘⇧A / Ctrl+Shift+A)会对光标处的测试或程序收集覆盖率。
3

查看结果

运行结束后,覆盖率工具窗口自动打开,同时弹出通知显示已覆盖行的比例。
如果缺少覆盖率工具,通知会说明缺的是什么,并提供 安装 按钮,在运行工具窗口里执行安装命令。IDE 不知道如何收集覆盖率的配置,会收到一条说明原因的通知。

支持的运行时

暂不支持:
  • 直接用 java 运行的应用:请改用 Maven 或 Gradle 测试配置收集覆盖率。
  • go run:Go 的覆盖率由 go test 收集。
  • Deno 任务。
IDE 不会改动项目文件。Gradle 通过临时 init 脚本接入 JaCoCo;没有自行配置 SimpleCov 的 Ruby 项目,通过环境变量预加载 SimpleCov。安装缺失工具(例如 bundle add simplecov --group test 或 uv add --dev coverage)会修改项目,所以只有在你点击 安装 时才会执行。

导入 CI 生成的报告

导入覆盖率报告…(在 查找操作… 中,或者点击空白覆盖率工具窗口里的链接)可以展示在别处收集的报告。格式根据内容自动识别:
  • lcov 跟踪文件(lcov.info)
  • Go cover profile
  • JaCoCo XML 报告
  • SimpleCov .resultset.json
报告中记录的其他机器上的路径,会按最长匹配后缀映射到当前项目中。

管理覆盖率套件

每次覆盖率运行或导入的报告都是一个套件。最近五次运行会以标签页形式保留在覆盖率工具窗口的标题栏上。 管理覆盖率报告…(⌘⌥F6 / Ctrl+Alt+F6)打开 覆盖率报告 对话框:选中套件后点击 显示所选项,或者 删除 套件,也可以 导入… 更多报告。导入过的报告按项目记住。 要去掉高亮,使用 运行 › 隐藏覆盖率 或覆盖率工具窗口里的按钮;显示覆盖率 可以重新显示选中的套件。编辑代码时,边栏色带会跟着移动,直到下一次运行。