代码覆盖率
在 GoLand 中,代码覆盖率让您分析特定运行期间执行了哪些代码行。 它有助于确定由测试覆盖的代码份额,并识别缺乏足够测试覆盖的领域。
运行覆盖率分析
要分析项目中的代码覆盖率,需要在专用的 运行覆盖率 模式下运行应用程序。
运行覆盖率分析的入口点与您通常用来 运行应用程序的相同:
GoLand 使用 Go 的内置覆盖率工具记录代码中哪些部分会运行。 运行完成后,IDE 会显示生产 Go 文件的覆盖率结果。 测试文件不包含在覆盖率高亮显示中。
覆盖套件
覆盖套件是来自某次特定运行的代码覆盖率数据的集合。 每个覆盖套件会存储来自单个运行配置(如果是 以覆盖方式运行 )或 导入的覆盖数据文件的数据。
GoLand 会将覆盖套件存储在 覆盖率 文件夹中,该文件夹位于 IDE 系统目录:
%LOCALAPPDATA%\JetBrains\GoLand%instance-version%\coverage
~/Library/Caches/JetBrains/GoLand%instance-version%/coverage
~/.cache/JetBrains/GoLand%instance-version%/coverage
GoLand 可同时显示一个或多个覆盖套件的结果,您可以选择要显示哪些套件。 如果选择了多个套件,IDE 会显示它们的合并结果:即只要某行在任意一个套件中被执行,就认为该行已被覆盖。
可以选择要显示的覆盖率结果、从文件导入结果,或移除覆盖率套件。
选择要显示的覆盖套件
至少进行一次 覆盖运行 后,覆盖套件列表才会可用。
在主菜单中,前往 (Ctrl+Alt+F6)。
在打开的 选择要显示的覆盖率套件 对话框中,选择要显示结果的套件。
如果要隐藏所有代码覆盖率结果,请点击 无覆盖。 这会取消选择所有覆盖套件并关闭对话框。

点击 显示所选项。
GoLand 会为所选套件加载代码覆盖率结果。
添加和移除覆盖套件
如果要查看在 GoLand 之外(例如由构建服务器或其他开发者生成)的文件中的代码覆盖率结果,可以将该文件添加为单独的覆盖套件。
还可以从 IDE 移除套件或彻底从磁盘删除。
在主菜单中,前往 (Ctrl+Alt+F6)。
在打开的 选择要显示的覆盖率套件 对话框中,从工具栏选择操作:
要导入外部覆盖文件,请点击
添加 并浏览文件。
GoLand 生成的覆盖数据文件默认保存在 IDE 覆盖率 文件夹中的 系统目录中。
要从 IDE 中移除覆盖套件但保留在磁盘上,请选择该套件并点击
移除。
要同时从 IDE 和磁盘删除覆盖套件,请选择该套件并点击
Delete。
读取覆盖率数据
GoLand 显示的覆盖率结果在:
覆盖率 工具窗口
项目 工具窗口
编辑器
代码覆盖率结果显示在 覆盖率 工具窗口、 项目 工具窗口中,以及在您 至少使用覆盖率运行一次运行配置后显示在编辑器中。
项目工具窗口
项目 工具窗口显示:
目录中包含的类和行的百分比
类覆盖方法和行的百分比

覆盖率工具窗口

覆盖率 工具窗口有以下选项:
项目 | 描述 |
|---|---|
如果此选项开启,GoLand 会自动在编辑器中打开所选项目。 否则,您需要双击项目才能打开它们。 | |
如果启用此选项,GoLand 将自动在工具窗口中定位您在编辑器中打开的文件。 | |
从磁盘导入覆盖率套件。 |
编辑器
编辑器会显示单行代码的覆盖状态。 状态通过装订区域中的彩色标记进行指示:
绿色(
):该代码行已执行。黄色(
):该代码行被部分执行。 当代码行包含条件逻辑(如 if/else语句、循环或switch语句),但只有部分分支被运行时,就会出现这种情况。红色(
):该代码行未被执行。
要打开包含指定行覆盖统计信息的弹窗,请点击其在装订区域的覆盖标记。
隐藏覆盖率数据
请执行以下操作之一:
在 覆盖率 工具窗口 () 中关闭覆盖统计选项卡。
点击页边的覆盖率高亮,然后选择 隐藏覆盖率。
配置代码覆盖率
更改覆盖率高亮的颜色
按下 Ctrl+Alt+S 打开设置,然后选择 。
或者,单击
,位于点击边距中的覆盖率指示线时弹出的弹窗中。
在组件列表中,展开 行覆盖率 节点并选择一种覆盖类型:例如, 完全、 部分 或 未涵盖。
点击 前景 字段以打开 选择颜色 对话框。
选择颜色,应用更改,然后关闭对话框。


