IntelliJ IDEA 2025.2 Help

程式码覆盖率

在 IntelliJ IDEA 中,代码覆盖率让您分析特定运行期间执行了哪些代码行。 它有助于确定由测试覆盖的代码份额,并识别缺乏足够测试覆盖的领域。

启用 Code Coverage for Java 插件

此功能依赖于 Java 代码覆盖率插件,该插件在 IntelliJ IDEA 中默认捆绑并启用。 如果相关功能不可用,请确保您没有禁用插件。

  1. Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 已安装 选项卡,找到 针对 Java 的代码覆盖率 插件,并选中插件名称旁边的复选框。

运行代码覆盖率测试

运行覆盖率分析的入口点与您通常用来 运行应用程序的相同:

  • 对于 main 方法定义,点击 运行 在编辑器装订线中,然后选择 运行代码覆盖率测试

    点击边框的 Run 图标时会出现一个弹出窗口
  • 要进行 运行配置 ,请点击 更多操作运行小组件中,然后选择 运行代码覆盖率测试

    点击运行小部件中的更多操作后会显示一个菜单
  • 对于 Gradle 任务,请转到 Gradle 工具窗口,右键点击任务,然后选择 运行代码覆盖率测试

    在 Gradle 工具窗口中点击任务时会出现一个菜单

覆盖分析会在附加 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

管理套件

  1. 在主菜单中,前往 运行 | 管理覆盖率报告 Ctrl+Alt+F6

  2. 选择要显示的覆盖率套件 菜单中:

    • 使用复选框选择活动套件。 激活的套件定义了当前在 IDE 中显示的覆盖率数据。

    • 导入外部套件文件,请使用 "添加"按钮添加 ,例如在 CI 服务器中生成的文件或其他人发送给您的文件。 您可以使用 .ic (IntelliJ IDEA 运行程序)或 .exec / .xml (JaCoCo 运行程序)文件。

      要查看使用 IntelliJ IDEA 运行程序 收集的导入套件,您无需编译或运行项目。

    • 请使用 "移除"按钮移除 从列表中移除套件但保留存储中的文件。

    • 使用 删除按钮删除 从列表中移除套件并从存储中删除文件。

读取覆盖率数据

IntelliJ IDEA 显示的覆盖率结果在:

  • 覆盖 工具窗口

  • 项目 工具窗口

  • 编辑器

代码覆盖率结果显示在 覆盖 工具窗口、 项目 工具窗口中,以及在您 至少使用覆盖率运行一次运行配置后显示在编辑器中。

项目工具窗口

项目 工具窗口显示:

  • 目录中包含的类和行的百分比

  • 类覆盖方法和行的百分比

项目工具窗口中的代码覆盖率结果

覆盖工具窗口

该报告按 classes、方法、代码行和分支的覆盖率细分项目。

分支覆盖率显示在 if-elseswitch 语句中执行的分支的百分比。 JaCoCo 运行器和启用 Branch Coverage选项的 IntelliJ IDEA 运行器均可使用。

在 Coverage 工具窗口中的覆盖结果

覆盖 工具窗口有以下选项:

条目

描述

“扁平化包”按钮

选择是否以层次结构显示包,或将结构扁平化以在同一层级显示所有包。

点击导航按钮

如果此选项开启,IntelliJ IDEA 会自动在编辑器中打开所选项目。 否则,您需要双击项目才能打开它们。

始终选择已打开元素按钮

如果启用此选项,IntelliJ IDEA 将自动在工具窗口中定位您在编辑器中打开的文件。

生成报告按钮

生成代码覆盖率报告并将其保存到指定目录。 有关更多信息,请参见 生成覆盖率报告

导入外部覆盖率报告按钮

从磁盘导入覆盖率套件。

筛选器

过滤覆盖结果。 您可以配置以下过滤器:

  • 仅显示已修改的类 – 仅显示与受保护的 VCS 分支相比在当前功能分支中已更改的类。

    选择此选项,以关注尚未提交到远程 VCS 分支的更新。 仅当存在至少一个受保护的远程 VCS 分支时启用。

  • 仅显示有未提交更改的类 – 仅显示尚未提交到 VCS 的类。

  • 隐藏完全覆盖的类 – 仅显示测试未完全覆盖的类。

    如需排除通常已完全覆盖或不包含可执行代码行的元素(例如接口),请选择此选项。

编辑器

在编辑器的装订区域,行会根据其覆盖状态高亮显示:

  • 完整代码覆盖率 绿色——已执行的行

  • 完整代码覆盖率 红色——尚未执行的代码行

  • 完整代码覆盖率 黄色 — 部分执行的代码行,例如仅访问了 if-else 语句的一个分支

要查看某行代码的统计信息,请点击装订区域的相应颜色指示器。 一个弹出窗口会显示命中次数和条件评估统计数据(仅适用于 IntelliJ IDEA 运行器)。

编辑器中显示的覆盖率统计

此外,统计弹窗有以下选项:

显示覆盖行的测试

对于 JUnit 测试:在单独的对话框中打开覆盖某行的测试。 要使用此功能,请确保您使用 分支覆盖率按测试覆盖率跟踪 选项进行了覆盖率分析.

显示字节码按钮

在单独的对话框中打开当前类的字节码

编辑覆盖率颜色按钮

更改 覆盖率指示器的颜色在边距中

隐藏覆盖率数据

请执行以下操作之一:

  • 覆盖 工具窗口 (查看 | 工具窗口 | 覆盖率) 中关闭覆盖统计选项卡。

  • 点击页边的覆盖率高亮,然后选择 隐藏覆盖率

生成覆盖率报告

  1. 请前往 运行 | 生成覆盖率报告 ,或点击 生成覆盖率报告按钮 ,在 覆盖 工具窗口中。

  2. 生成覆盖率报告 对话框中,指定用于存储生成报告的目录,并可选择 在浏览器中打开生成后的HTML 复选框。

配置代码覆盖率

在 IntelliJ IDEA 中,有适用于单个运行配置的覆盖设置,以及适用于每个项目的覆盖设置。

运行配置设置

对于每个 run configuration ,您可以指定覆盖分析的范围。

配置类和包

  1. 请前往 运行 | 编辑配置(E) ,然后点击左侧面板上的运行配置。

  2. 点击 修改选项 ,然后在 代码覆盖率 下选择以下选项:

    • 指定类和包 :选择此选项以配置您希望查看覆盖率信息的类和包。

    • 排除类和包 :选择此选项以配置您想要从覆盖率中排除的类和包。

项目设置

对于项目,您可以配置以下选项:

在将覆盖率应用到编辑器前显示选项(S)

每次运行覆盖率分析时,询问是否让最近收集的 覆盖套件处于活动状态。 在这种情况下,将会出现一个对话框,您可以选择仅显示新结果、将其添加到现有结果中,或将其保存到存储中但不进行查看。

不应用已收集的覆盖(N)

在运行覆盖率分析后,只有在最近收集的 覆盖套件保存到存储中。 在这种情况下,新的覆盖率数据将不会显示,除非您明确选择相应的套件 运行 | 管理覆盖率报告

将有效套件替换为新套件(R)

隐藏当前显示的 覆盖率套件 ,并在运行覆盖率分析后使用新收集的覆盖率套件。 在这种情况下,只有最近一次覆盖率运行的结果会显示。

添加到有效套件(D)

在运行覆盖率分析之后,将新收集的 覆盖套件添加到活动套件列表中。 这将保留现有的覆盖率结果,并在其基础上添加新的结果。

激活覆盖率视图(V)

每次运行覆盖分析时,请打开 覆盖工具窗口

选择覆盖率运行程序

选择覆盖率运行器: IntelliJ IDEAJaCoCo

分支覆盖率

始终启用 JaCoCo

ifswitch 语句的分支收集精细的覆盖数据。

按测试覆盖率跟踪

仅适用于 JUnit 测试;

不支持 Gradle

让您追溯到执行某行代码的特定测试。 有关详细信息,请参阅 按测试覆盖率

在测试文件夹中收集覆盖率

仅适用于 IntelliJ IDEA 运行器

收集测试的代码覆盖率统计数据。 默认情况下,覆盖数据仅显示在源根目录中被覆盖的行。 使用此选项以在测试根目录中启用覆盖收集。

忽略隐式声明的默认构造函数

仅适用于 IntelliJ IDEA 运行器

从覆盖率统计中排除隐式默认构造函数。 显式声明的无参数构造函数将继续包含在内。

排除注释

仅适用于 IntelliJ IDEA 运行器

排除由指定注解标记的元素从覆盖率结果中,例如 Lombok 的 @Generated 元素。

更改覆盖率高亮的颜色

  1. Ctrl+Alt+S 打开设置,然后选择 编辑器 | 颜色方案 | 常规

  2. 在组件列表中,展开 行覆盖率 节点并选择一种覆盖类型:例如, 完全部分未涵盖

  3. 点击 前景 字段以打开 选择颜色 对话框。

  4. 选择颜色,应用更改,然后关闭对话框。

配置代码覆盖率颜色

按测试覆盖率

启用分支覆盖率时,IntelliJ IDEA 允许您跟踪每个测试覆盖了哪些代码行,反之亦然。

启用按测试覆盖率

设置 Ctrl+Alt+S | 构建,执行,部署 | 覆盖率 中,启用 分支覆盖率按测试覆盖率跟踪

    按行跟踪测试

    要导航到覆盖特定行的测试:

    • 点击编辑器边距中的覆盖率高亮显示,然后选择 显示覆盖行的测试显示覆盖该行的测试

      在点击覆盖率高亮显示时出现的弹出窗口中显示“Tests Covering Line”按钮

    按测试跟踪行

    仅高亮显示特定测试覆盖的行:

    • 封面 工具窗口中,选择一个测试并点击工具栏上的 显示每个测试的覆盖率

      在工具栏上显示“Coverage per Test”按钮
    最后修改日期: 2025年 9月 22日