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# 项目的仪器化。
- 手动:在 Visual Studio 中打开项目的属性页,选择“生成”选项卡,并将
COVERAGESCANNER_COVERAGE_ON
(以及可能的其他符号)插入到“条件编译符号”字段中。完整的符号列表可以在关于 将预处理器符号作为命令行标志的替代 的章节中找到。 - 自动,使用 Visual Studio Coco 向导。
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 可执行文件的路径。)
高级设置
对单元测试覆盖率的支持
集成测试框架的通用过程在关于《使用 Coco 库》的章节中描述。
有关 xUnit 测试框架的更多信息,请见此处。
Coco v7.2.0©2024 The Qt Company Ltd.
Qt 及相关标志是芬兰以及在全世界其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。