C# 覆盖率

C# 仪器化类似于 C/C++ 仪器化,但有一些由 C# 编译器特性引起的改变。

安装

C# 支持与 C/C++ 覆盖率自动安装。然而,当与 Microsoft Visual Studio 一起使用 Coco 时,需要注意一个区别。

对于 Visual Studio,Coco 安装程序将 C# 编译器 csc.exe 替换为 CoverageScanner 的一个副本——原始的 csc.exe 被重命名。这是确保在调用 C# 文件时调用 CoverageScanner 的唯一方法。但这也意味着,当 Visual Studio 更新且有新的编译器版本时,csc.exe 就不再是 CoverageScanner 的副本,代码覆盖率将不起作用。在这种情况下,重新安装 Coco 可以解决问题。 (不需要先卸载 Coco。)

注意:如果 C# 覆盖率不再工作,请首先尝试重新安装 Coco。

C# 代码的仪器化

Microsoft Visual Studio

有三种方法可以激活 C# 项目的仪器化。

Mono C# XBuild

要为由 Mono C# XBuild 生成的项目进行仪器化,请运行以下 shell 命令

export COVERAGESCANNER_ARGS=--cs-on
msbuild \
/p:UseEnv=true \
/p:UseHostCompilerIfAvailable=true \
/p:CscToolPath="${SQUISHCOCO}/wrapper" \
myproject.sln /t:ReBuild

(环境变量 SQUISHCOCO 包含 CoverageScanner 可执行文件的路径。)

高级设置

  • 要修改仪器化程序在运行时的行为,请使用 C# 库
  • 要仅修改 C# 源文件的一部分的仪器化,请使用 C# 区域

对单元测试覆盖率的支持

集成测试框架的通用过程在关于《使用 Coco 库》的章节中描述。

有关 xUnit 测试框架的更多信息,请见此处

Coco v7.2.0©2024 The Qt Company Ltd.
Qt 及相关标志是芬兰以及在全世界其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。