程式码覆盖率
在 IntelliJ IDEA 中,代码覆盖率让您分析特定运行期间执行了哪些代码行。 它有助于确定由测试覆盖的代码份额,并识别缺乏足够测试覆盖的领域。
启用 Code Coverage for Java 插件
此功能依赖于 Java 代码覆盖率插件,该插件在 IntelliJ IDEA 中默认捆绑并启用。 如果相关功能不可用,请确保您没有禁用插件。
按 Ctrl+Alt+S 打开设置,然后选择 。
打开 已安装 选项卡,找到 针对 Java 的代码覆盖率 插件,并选中插件名称旁边的复选框。
运行代码覆盖率测试
运行覆盖率分析的入口点与您通常用来 运行应用程序的相同:
覆盖分析会在附加 coverage agent 的情况下执行相应的运行配置。 此代理会修改字节码以逐行跟踪执行情况。 执行完成后,分析结果会出现在 IDE 中。
覆盖套件
对于特定运行的覆盖数据收集称为 覆盖套件。
IntelliJ IDEA 可以同时显示一个或多个覆盖套件的结果。 如果选择了多个 suite,IDE 将显示这些 suite 的合并结果。 这意味着,如果某行在至少一个选定的套件中执行过,则该行被视为已覆盖。
对应的套件文件位于 IntelliJ IDEA 的系统目录下:
%LOCALAPPDATA%\JetBrains\IntelliJIdea2025.2\coverage
~/.cache/JetBrains/IntelliJIdea2025.2/coverage
~/Library/Caches/JetBrains/IntelliJIdea2025.2/coverage
管理套件
在主菜单中,前往 Ctrl+Alt+F6。
在 选择要显示的覆盖率套件 菜单中:
使用复选框选择活动套件。 激活的套件定义了当前在 IDE 中显示的覆盖率数据。
导入外部套件文件,请使用
添加 ,例如在 CI 服务器中生成的文件或其他人发送给您的文件。 您可以使用 .ic (IntelliJ IDEA 运行程序)或 .exec / .xml (JaCoCo 运行程序)文件。
要查看使用 IntelliJ IDEA 运行程序 收集的导入套件,您无需编译或运行项目。
请使用
移除 从列表中移除套件但保留存储中的文件。
使用
删除 从列表中移除套件并从存储中删除文件。
读取覆盖率数据
IntelliJ IDEA 显示的覆盖率结果在:
覆盖 工具窗口
项目 工具窗口
编辑器
代码覆盖率结果显示在 覆盖 工具窗口、 项目 工具窗口中,以及在您 至少使用覆盖率运行一次运行配置后显示在编辑器中。
项目工具窗口
项目 工具窗口显示:
目录中包含的类和行的百分比
类覆盖方法和行的百分比

覆盖工具窗口
该报告按 classes、方法、代码行和分支的覆盖率细分项目。
分支覆盖率显示在 if-else 或 switch 语句中执行的分支的百分比。 JaCoCo 运行器和启用 Branch Coverage选项的 IntelliJ IDEA 运行器均可使用。

覆盖 工具窗口有以下选项:
条目 | 描述 |
|---|---|
选择是否以层次结构显示包,或将结构扁平化以在同一层级显示所有包。 | |
如果此选项开启,IntelliJ IDEA 会自动在编辑器中打开所选项目。 否则,您需要双击项目才能打开它们。 | |
如果启用此选项,IntelliJ IDEA 将自动在工具窗口中定位您在编辑器中打开的文件。 | |
生成代码覆盖率报告并将其保存到指定目录。 有关更多信息,请参见 生成覆盖率报告。 | |
从磁盘导入覆盖率套件。 | |
过滤覆盖结果。 您可以配置以下过滤器:
|
编辑器
在编辑器的装订区域,行会根据其覆盖状态高亮显示:
绿色——已执行的行
红色——尚未执行的代码行
黄色 — 部分执行的代码行,例如仅访问了 if-else语句的一个分支
要查看某行代码的统计信息,请点击装订区域的相应颜色指示器。 一个弹出窗口会显示命中次数和条件评估统计数据(仅适用于 IntelliJ IDEA 运行器)。

此外,统计弹窗有以下选项:
对于 JUnit 测试:在单独的对话框中打开覆盖某行的测试。 要使用此功能,请确保您使用 分支覆盖率 和 按测试覆盖率跟踪 选项进行了覆盖率分析. | |
在单独的对话框中打开当前类的字节码 | |
更改 覆盖率指示器的颜色在边距中 |
隐藏覆盖率数据
请执行以下操作之一:
在 覆盖 工具窗口 () 中关闭覆盖统计选项卡。
点击页边的覆盖率高亮,然后选择 隐藏覆盖率。
生成覆盖率报告
请前往 ,或点击
,在 覆盖 工具窗口中。
在 生成覆盖率报告 对话框中,指定用于存储生成报告的目录,并可选择 在浏览器中打开生成后的HTML 复选框。
配置代码覆盖率
在 IntelliJ IDEA 中,有适用于单个运行配置的覆盖设置,以及适用于每个项目的覆盖设置。
运行配置设置
对于每个 run configuration ,您可以指定覆盖分析的范围。
配置类和包
请前往 ,然后点击左侧面板上的运行配置。
点击 修改选项 ,然后在 代码覆盖率 下选择以下选项:
指定类和包 :选择此选项以配置您希望查看覆盖率信息的类和包。
排除类和包 :选择此选项以配置您想要从覆盖率中排除的类和包。
项目设置
对于项目,您可以配置以下选项:
在将覆盖率应用到编辑器前显示选项(S) | 每次运行覆盖率分析时,询问是否让最近收集的 覆盖套件处于活动状态。 在这种情况下,将会出现一个对话框,您可以选择仅显示新结果、将其添加到现有结果中,或将其保存到存储中但不进行查看。 |
不应用已收集的覆盖(N) | 在运行覆盖率分析后,只有在最近收集的 覆盖套件保存到存储中。 在这种情况下,新的覆盖率数据将不会显示,除非您明确选择相应的套件 。 |
将有效套件替换为新套件(R) | 隐藏当前显示的 覆盖率套件 ,并在运行覆盖率分析后使用新收集的覆盖率套件。 在这种情况下,只有最近一次覆盖率运行的结果会显示。 |
添加到有效套件(D) | 在运行覆盖率分析之后,将新收集的 覆盖套件添加到活动套件列表中。 这将保留现有的覆盖率结果,并在其基础上添加新的结果。 |
激活覆盖率视图(V) | 每次运行覆盖分析时,请打开 覆盖工具窗口。 |
选择覆盖率运行程序 | 选择覆盖率运行器: IntelliJ IDEA 或 JaCoCo |
分支覆盖率 始终启用 JaCoCo | 为 |
按测试覆盖率跟踪 仅适用于 JUnit 测试; 不支持 Gradle | 让您追溯到执行某行代码的特定测试。 有关详细信息,请参阅 按测试覆盖率。 |
在测试文件夹中收集覆盖率 仅适用于 IntelliJ IDEA 运行器 | 收集测试的代码覆盖率统计数据。 默认情况下,覆盖数据仅显示在源根目录中被覆盖的行。 使用此选项以在测试根目录中启用覆盖收集。 |
忽略隐式声明的默认构造函数 仅适用于 IntelliJ IDEA 运行器 | 从覆盖率统计中排除隐式默认构造函数。 显式声明的无参数构造函数将继续包含在内。 |
排除注释 仅适用于 IntelliJ IDEA 运行器 | 排除由指定注解标记的元素从覆盖率结果中,例如 Lombok 的 |
更改覆盖率高亮的颜色
按 Ctrl+Alt+S 打开设置,然后选择 。
在组件列表中,展开 行覆盖率 节点并选择一种覆盖类型:例如, 完全、 部分 或 未涵盖。
点击 前景 字段以打开 选择颜色 对话框。
选择颜色,应用更改,然后关闭对话框。

按测试覆盖率
启用分支覆盖率时,IntelliJ IDEA 允许您跟踪每个测试覆盖了哪些代码行,反之亦然。
启用按测试覆盖率
在 中,启用 分支覆盖率 和 按测试覆盖率跟踪。
按行跟踪测试
要导航到覆盖特定行的测试:
点击编辑器边距中的覆盖率高亮显示,然后选择
显示覆盖该行的测试。

按测试跟踪行
仅高亮显示特定测试覆盖的行:
在 封面 工具窗口中,选择一个测试并点击工具栏上的 显示每个测试的覆盖率。



