代码覆盖率
在 RustRover 中,代码覆盖率让您分析特定运行期间执行了哪些代码行。 它有助于确定由测试覆盖的代码份额,并识别缺乏足够测试覆盖的领域。
运行覆盖率分析
要分析项目中的代码覆盖率,需要在专用的 运行覆盖率 模式下运行应用程序。
运行覆盖率分析的入口点与您通常用来 运行应用程序的相同:
对于 main 方法定义,点击
运行 在编辑器装订线中,然后选择 运行覆盖率

对于 运行配置 ,请点击
更多操作 在运行微件中,然后选择 运行覆盖率

使用代码覆盖率运行代码时,RustRover 会启动一个运行配置,并记录代码中哪些行被执行。 运行结束后,RustRover 显示结果。
覆盖套件
覆盖套件是一组来自某次特定运行的代码覆盖率数据。 每个覆盖套件保存来自单个运行配置的数据(如果是 使用覆盖运行 ),或者是来自 导入的覆盖数据文件的数据。
RustRover 将覆盖套件存储在 覆盖率 文件夹下的 IDE 系统目录中:
%LOCALAPPDATA%\JetBrains\RustRover%instance-version%\coverage
~/Library/Caches/JetBrains/RustRover%instance-version%/coverage
~/.cache/JetBrains/RustRover%instance-version%/coverage
RustRover 可同时显示一个或多个覆盖套件的结果,并且可以选择要显示哪些套件。 如果选择了多个套件,IDE 会显示它们合并后的结果:也就是说,只要某一行在至少一个套件中被执行,就被视为已覆盖。
选择要显示的覆盖套件
至少进行过一次 使用覆盖运行后,覆盖套件列表才会可用。
在主菜单中,前往 (Ctrl+Alt+F6)。
在打开的 选择要显示的覆盖率套件 对话框中,选择要显示结果的套件。
如果需要隐藏所有代码覆盖率结果,请点击 无覆盖。 这将取消选中所有覆盖套件并关闭对话框。
点击 显示所选项。
RustRover 会加载所选套件的代码覆盖率结果。
添加和移除覆盖套件
如果需要查看在 RustRover 之外生成的文件(例如由构建服务器或其他开发者生成)的代码覆盖率结果,可以将该文件添加为单独的覆盖套件。
也可以从 IDE 中移除套件,或彻底从磁盘删除它们。
在主菜单中,前往 (Ctrl+Alt+F6)。
在打开的 选择要显示的覆盖率套件 对话框中,从工具栏选择操作:
要导入外部覆盖文件,请点击
添加 并浏览选择文件。
由 RustRover 生成的带有覆盖数据的文件默认保存在 IDE 覆盖率 文件夹下的 系统目录中。
要从 IDE 中移除覆盖套件但保留于磁盘,请选择该套件并点击
移除。
要同时从 IDE 和磁盘删除覆盖套件,请选择该套件并点击
Delete。
读取覆盖率数据
代码覆盖率结果显示在 覆盖率 工具窗口、 Project 工具窗口中,以及在您 至少使用覆盖率运行一次运行配置后显示在编辑器中。

此外,这些结果会保存到 IDE 覆盖率 文件夹中的 系统目录。
隐藏覆盖率数据
请执行以下操作之一:
在 覆盖率 工具窗口 () 中关闭覆盖统计选项卡。
点击页边的覆盖率高亮,然后选择 隐藏覆盖率。

生成覆盖率报告
生成报告
请前往 ,或点击
,在 覆盖率 工具窗口中。
在 生成覆盖报告 对话框中,指定用于存储生成报告的目录,并可选择 在浏览器中打开生成的 HTML 复选框。
如果在同一个窗口中打开多个项目,请确保建议的输出目录正确。
点击 Save。
配置代码覆盖率
项目设置
您可以为每个项目配置以下选项:
在将覆盖率应用到编辑器前显示选项。 | 每次运行覆盖率分析时,询问是否让最近收集的 覆盖套件处于活动状态。 在这种情况下,将会出现一个对话框,您可以选择仅显示新结果、将其添加到现有结果中,或将其保存到存储中但不进行查看。 |
不应用已收集的覆盖率 | 在运行覆盖率分析后,只有在最近收集的 覆盖套件保存到存储中。 在这种情况下,新的覆盖率数据将不会显示,除非您明确选择相应的套件 。 |
用新套件替换活动套件 | 隐藏当前显示的 覆盖率套件 ,并在运行覆盖率分析后使用新收集的覆盖率套件。 在这种情况下,只有最近一次覆盖率运行的结果会显示。 |
添加到活动套件 | 在运行覆盖率分析之后,将新收集的 覆盖套件添加到活动套件列表中。 这将保留现有的覆盖率结果,并在其基础上添加新的结果。 |
激活覆盖率视图 | 每次运行覆盖分析时,请打开 覆盖工具窗口。 |
更改覆盖率高亮的颜色
按下 Ctrl+Alt+S 打开设置,然后选择 。
或者,单击
,位于点击边距中的覆盖率指示线时弹出的弹窗中。
在组件列表中,展开 行覆盖率 节点并选择一种覆盖类型:例如, 完全、 部分 或 未涵盖。
点击 前景 字段以打开 选择颜色 对话框。
选择颜色,应用更改,然后关闭对话框。
