代码覆盖率扩展
本文列出并介绍与代码覆盖率功能相关的所有 Microsoft Testing Platform
扩展。
可以使用代码覆盖率功能来确定正在由编码的测试(例如单元测试)进行测试的项目代码的比例。 若要有效防止 Bug,测试应作用于或覆盖你的大部分代码。
Microsoft 代码覆盖率
Microsoft 代码覆盖分析可用于托管代码(CLR)和非托管代码(原生)。 支持静态和动态检测。 此扩展作为 Microsoft.Testing.Extensions.CodeCoverage NuGet 包的一部分提供。
注意
默认情况下,扩展中禁用非托管(本机)代码覆盖率。 根据需要使用标志 EnableStaticNativeInstrumentation
和 EnableDynamicNativeInstrumentation
启用它。
有关非托管代码覆盖率的详细信息,请参阅静态和动态本机检测。
重要
该包采用 Microsoft .NET 库闭源免费使用许可模型。
有关 Microsoft 代码覆盖率的详细信息,请参阅其 GitHub 页面。
Microsoft 的代码覆盖工具提供以下选项:
选项 | 说明 |
---|---|
--coverage |
使用 dotnet-coverage 工具收集代码覆盖率。 |
--coverage-output |
生成的覆盖率文件的名称或路径。 默认情况下,该文件名为TestResults/<guid>.coverage 。 |
--coverage-output-format |
输出文件格式。 支持的值为:coverage 、xml 和 cobertura 。 默认值为 coverage 。 |
--coverage-settings |
XML 代码覆盖率设置。 |
Coverlet
重要
coverlet.collector
NuGet 包专为 VSTest 设计,不能用于 Microsoft.Testing.Platform
。
目前没有 Coverlet 扩展,但可以使用 Coverlet .NET 全局工具。
假设已安装 Coverlet 全局工具,现在可以运行:
coverlet .\bin\Debug\net8.0\TestProject2.dll --target "dotnet" --targetargs "test .\bin\Debug\net8.0\TestProject2.dll --no-build"