TeamCity On-Premises 2024.03 Help

JetBrains dotCover

TeamCity"自带JetBrains dotCover的控制台运行器。 除了捆绑版本之外,您还可以安装另一个版本的 JetBrains dotCover Command Line Tools,和/或使用 管理 | 工具 页面更改默认设置。

在构建步骤的 .NET 覆盖率区域选择了适当的选项后,您将能够收集 .NET 项目的代码覆盖率,然后在 TeamCity web UI 中查看覆盖率统计信息和详细的覆盖率报告。

如果您拥有 dotCover 的许可证并已将其安装在开发机器上,那么可以下载并使用 TeamCity Visual Studio 插件 在 Visual Studio 内查看 TeamCity 收集的覆盖率结果。

dotCover 设置

到 dotCover Home 的路径

将此字段留空以使用默认的 dotCover。 您可以将任何额外安装的版本标记为默认。
或者,指定构建代理上安装的 dotCover 的路径。

筛选器

为代码覆盖率指定一个新的换行分隔的过滤器列表。 使用 +|-:assembly=*;type=**;method=*** 来包含或排除已覆盖组件中的组件:

例如,要在所有 MyDemoApp 组件上运行覆盖但不运行 MyDemoApp.*.Tests ,请为覆盖设置以下组件筛选器:
+":MyDemoApp.*
-:MyDemoApp.*.Tests

也可以参考相关的 博客文章

属性过滤器

如果您不想了解整个解决方案的覆盖率数据,您可以将标记有属性的代码(例如,带有 ObsoleteAttribute 的代码)从覆盖率统计中排除。 您只需在此处按照以下格式指定这些属性过滤器:过滤器应为分行列出的列表;应使用 -:attributeName 语法来排除带有属性标记的代码覆盖率。 如有需要,可以使用星号( * )作为通配符。
只支持 dotCover 2.0 或更高版本。

其他实参

提供一个新行分隔的 dotCover.exe 需要传递的额外命令行参数列表。

请注意,dotCover 覆盖引擎报告的是语句覆盖情况,而非行覆盖情况。

在不同构建中编译和测试

为了构建一份连贯的覆盖率报告,dotCover 必须能够在构建检出目录下找到源文件,如果您在同一构建中构建二进制文件并收集覆盖率,或者您使用不同的构建,但它们使用相同的 快照依赖关系,以及相同的代理和相同的 VCS 设置,这应该很容易做到。

如果您需要在一次构建中生成二进制文件,并使用不同的 checkout settings 在另一次构建中收集代码覆盖率,那么需要一些额外的属性。 假设:

  • 构建配置 A 会编译带有调试信息的代码,并创建一个包含装配体和 .pdb 文件的工件

  • 构建配置 B 运行启用了 dotCover 的测试,并且对 A 有一个 快照依赖性

要在 B 的构建结果的 Code Coverage 标签页中显示源代码,您需要将 B 指向与 A 相同的 VCS 根,以便将您的源代码放置在适当的位置(检出根),并在 A 的 来自同一链的构建 上添加一个 工件依赖(以便 dotCover 从 .pdb 文件获取源代码的路径)。

您还需要告诉 TeamCity 在哪里可以找到源代码。 要做到这一点,请执行以下操作:

  1. 在编译构建配置 A 中添加 teamcity.dotCover.sourceBase 配置参数,其值为 %teamcity.build.checkoutDir%

  2. 将配置参数 dotNetCoverage.dotCover.source.mapping 添加到您的测试配置 B 中,并赋值为 %dep.btA.teamcity.dotCover.sourceBase%=>%teamcity.build.checkoutDir% ,其中 btA 是您的配置 A 的实际 ID

独立的 dotCover 运行器

从2024.03版本开始,您不仅可以通过启用 .NETNUnit 运行器中的 ".NET Coverage" 来调用 JetBrains dotCover,还可以使用独立的 dotCover 运行器。

DotCover 运行器设置

这个运行器使您可以:

  • 使用 dotCover 覆盖率配置文件启动任何进程,并生成其自身的快照。

  • 将前面步骤生成的快照合并,以在 代码覆盖率选项卡 上显示整合后的报告。

了解更多:dotCover

捆绑的 dotCover 版本

TeamCity 版本

dotCover 版本

2018.1

2018.1.2

2018.2

2018.1.4

2019.1

2019.1.1

2019.2

2019.2.3

2020.1

2019.2.3

2020.2

2020.2.4

2021.1

2021.1.2

2021.2 ~ 2023.05

2021.2.2

2023.11

2023.2.2

2024.03 及更高版本

2023.3.3

您可以在 服务器管理 | 工具 页查看已安装的 dotCover 版本。 捆绑版本已被设为默认,您可以安装其他版本并更改默认设置。

跨平台 dotCover

TeamCity 支持通过跨平台的 JetBrains dotCover(版本 2019.2.3+)在 Linux 和 macOS 上收集 .NET Core 项目的覆盖率。

dotCover 2019.2.3 适用于 Windows ,并且被 TeamCity 打包在一起。 如果您需要在非 Windows 平台下收集代码覆盖率,请在 管理 | 工具 中添加 跨平台 dotCover.GlobalTool,并在 .NET 构建步骤中启用 dotCover 覆盖率。 如果您也想在 Windows 下使用跨平台 dotCover,请确保代理已安装 .NET Framework SDK 4.6.1+。

您还可以在容器内运行 dotCover 代码覆盖率分析,配合 容器包装器 扩展。

最后修改日期: 16日 7月 2024年