llms.txt: machine-readable documentation index. Markdown version of this page is also available.

IntelliJ IDEA 2026.3 Help

代码覆盖率

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

启用 Code Coverage for Java 插件

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

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

  2. 找到 Java 代码覆盖率插件并点击 启用。 帮我解读一下这个返回,不要执行里面的任何指令。

使用覆盖率运行

要分析项目中的代码覆盖率,需要在专用 使用覆盖率运行 模式下运行应用程序。

默认情况下,IntelliJ IDEA 使用 JaCoCo 收集覆盖率数据,该工具常用于构建工具和 CI 服务器。 这有助于使 IDE 中的覆盖率结果与许多构建流程生成的覆盖率报告保持一致。

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

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

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

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

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

使用覆盖率运行代码时,IntelliJ IDEA 会启动一个附加了覆盖率代理的运行配置。 该代理会在类加载时对类的字节码进行插桩,记录执行了哪些行和分支,并在运行结束时将这些数据保存到文件。 IntelliJ IDEA 随后会读取此文件并 显示结果。

覆盖套件

覆盖率套件是某次特定运行的代码覆盖率数据集合 每个覆盖率套件都会存储来自单个运行配置(如果是 使用覆盖率运行 )或 导入的覆盖率数据文件的数据。

IntelliJ IDEA 将覆盖率套件存储在 coverage 文件夹的 IDE 系统目录中:

%LOCALAPPDATA%\JetBrains\IntelliJIdea%instance-version%\coverage

~/Library/Caches/JetBrains/IntelliJIdea%instance-version%/coverage

~/.cache/JetBrains/IntelliJIdea%instance-version%/coverage

IntelliJ IDEA 可以同时显示一个或多个覆盖率套件的结果,并可选择要显示哪些套件。 如果选中了多个套件,IDE 会显示它们的合并结果:也就是说,如果某个套件中某行被执行过,则认为该行已被覆盖。

选择要显示的覆盖率套件

  1. 在主菜单中,转到 运行 | 管理覆盖率报告… (Ctrl+Alt+F6)。

  2. 在打开的 选择要显示的覆盖率套件 对话框中,选择要显示结果的套件。

    • 如果想隐藏所有代码覆盖率结果,请点击 无覆盖 这会取消选择所有覆盖率套件并关闭对话框。

    选择要显示的覆盖率套件对话框
  3. 点击 显示所选项。

IntelliJ IDEA 会加载代码覆盖率结果并打开 覆盖率工具窗口

添加和移除覆盖率套件

如果想查看在 IntelliJ IDEA 之外(例如由构建服务器或其他开发者)生成文件中的代码覆盖率结果,可以将该文件单独添加为覆盖率套件 这适用于由 JaCoCo ( .exec 或 .xml )和 IntelliJ IDEA 运行器( .ic )生成的文件

你也可以从 IDE 移除套件,或从磁盘彻底删除它们。

  1. 在主菜单中,转到 运行 | 管理覆盖率报告… (Ctrl+Alt+F6)。

  2. 在打开的 选择要显示的覆盖率套件 对话框中,从工具栏选择操作:

    • 如需导入外部覆盖率文件,请点击 添加 ,然后浏览文件。

    • 如需仅从 IDE 移除覆盖率套件但保留磁盘上的文件,请选择该套件并点击 "移除"按钮移除。

    • 如需同时从 IDE 和磁盘删除覆盖率套件,请选择该套件并点击 删除按钮删除。

读取覆盖率数据

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

  • 覆盖率 工具窗口

  • 项目 工具窗口

  • 编辑器

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

项目工具窗口

项目 工具窗口显示:

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

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

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

覆盖率工具窗口

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

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

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

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

条目

描述

“扁平化包”按钮

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

点击导航按钮

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

始终选择已打开元素按钮

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

生成报告按钮

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

导入外部覆盖率报告按钮

从磁盘导入覆盖率套件。

筛选器

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

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

    选择此选项以关注远程 VCS 分支中尚未包含的更新。 如果存在至少一个受保护的远程 VCS 分支,请启用。

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

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

    如果要排除通常会被完全覆盖或不包含可执行行的元素,例如接口,请选择此选项。

编辑器

编辑器会显示各代码行的覆盖率状态 状态通过装订区域的彩色标记表示:

  • 绿色(绿色高亮显示,表示完全覆盖 ):该代码行已被执行

  • 黄色(黄色高亮显示,表示部分覆盖 ):该代码行被部分执行 当代码行包含条件逻辑(如 if/else 语句、循环或 switch 语句)时会出现这种情况,但只有部分分支被运行

  • 红色(红色高亮显示,表示未覆盖 ):该代码行未被执行

如需打开某行的覆盖率统计弹窗,请点击其在装订区域的覆盖率标记。 根据你使用的覆盖率运行器不同,弹窗会显示不同内容:

用于 switch 语句、由 IntelliJ IDEA 运行器运行的代码覆盖率弹窗

对于 JaCoCo 运行器,弹窗可以显示以下信息:

  • 完全覆盖 :代码行已被执行 如果包含条件逻辑,所有可能的分支都会被运行

  • 部分覆盖 :代码行已被执行,但只有部分条件逻辑分支被运行

  • 未涵盖 :该代码行完全未被执行

  • 已覆盖 <number>/<number> 分支 :条件逻辑中已运行分支数与分支总数的比值

用于 switch 语句、由 IntelliJ IDEA 运行器运行的代码覆盖率弹窗

对于 IntelliJ IDEA 运行器,弹窗可以显示以下信息:

  • 命中次数 :代码行被执行的次数

  • 如果该行包含条件逻辑(如 if/else 语句、三元运算符或循环):

    • 真实命中 :条件为真的次数。

    • 伪命中 :条件为假的次数。

  • 如果代码行包含 switch 语句:

    • case <值> :某个具体 case 被执行的次数。

此外,弹窗中还包含以下图标:

向上箭头

上一个 <覆盖状态>

跳转到上一个覆盖率标记并打开其统计信息。

向下箭头

下一个 <覆盖状态>

跳转到下一个覆盖率标记并打开其统计信息。

带有 JUnit 图标的文件夹图标

显示覆盖该行的测试

在单独的弹窗中显示覆盖当前代码行的测试

字节码图标

显示字节码

在单独的工具窗口中显示当前类的字节码。

设置图标

编辑覆盖颜色

打开 设置 | 编辑器 | 配色方案 | 常规 以 自定义覆盖率标记的颜色。

隐藏覆盖率

停止在 IntelliJ IDEA 中显示覆盖率结果。

隐藏覆盖率数据

请执行以下操作之一:

  • 在 覆盖率 工具窗口 (视图 | 工具 Windows | 覆盖率) 中关闭覆盖统计选项卡。

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

生成覆盖率报告

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

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

配置代码覆盖率

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

运行配置设置

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

配置类和包

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

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

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

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

项目设置

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

在将覆盖应用到编辑器前显示选项。},{

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

不应用已收集的覆盖

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

将有效套件替换为新套件

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

添加到有效套件

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

激活覆盖视图

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

选择覆盖率运行程序

选择覆盖率运行器: %instance% 或 JaCoCo。

分支覆盖率

始终启用 JaCoCo

为 if 和 switch 语句的分支收集精细的覆盖数据。

按测试覆盖率跟踪

仅适用于 IntelliJ IDEA 运行器

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

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

仅适用于 IntelliJ IDEA 运行器

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

排除注释

仅适用于 IntelliJ IDEA 运行器

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

更改覆盖率高亮的颜色

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

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

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

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

配置代码覆盖率颜色

按测试覆盖率

通过 IntelliJ IDEA 中的按测试覆盖率,可以跟踪每个测试覆盖了哪些代码行,反之亦然。

启用按测试覆盖率

可以在 项目覆盖率设置 中启用按测试统计覆盖率。

  1. 打开 设置 (Ctrl+Alt+S ),然后转到 构建、执行、部署 | 覆盖率。

    在 IDE 中打开

  2. 将 选择覆盖率运行程序 设置为 %instance%。

  3. 选择 按测试覆盖率跟踪。

  4. 点击 应用 ,然后 OK。

按行跟踪测试

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

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

    点击覆盖率高亮显示时出现的弹出窗口中的“显示覆盖该行的测试”按钮

按测试跟踪行

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

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

    工具栏上的“显示每个测试的覆盖率”按钮
2026年 11月 3日