代码覆盖率扩展

本文列出并介绍与代码覆盖率功能相关的所有 Microsoft Testing Platform 扩展。

可以使用代码覆盖率功能来确定正在由编码的测试(例如单元测试)进行测试的项目代码的比例。 若要有效防止 Bug,测试应作用于或覆盖你的大部分代码。

Microsoft 代码覆盖率

Microsoft 代码覆盖分析可用于托管代码(CLR)和非托管代码(原生)。 支持静态和动态检测。 此扩展作为 Microsoft.Testing.Extensions.CodeCoverage NuGet 包的一部分提供。

注意

默认情况下,扩展中禁用非托管(本机)代码覆盖率。 根据需要使用标志 EnableStaticNativeInstrumentationEnableDynamicNativeInstrumentation 启用它。 有关非托管代码覆盖率的详细信息,请参阅静态和动态本机检测

重要

该包采用 Microsoft .NET 库闭源免费使用许可模型。

有关 Microsoft 代码覆盖率的详细信息,请参阅其 GitHub 页面

Microsoft 的代码覆盖工具提供以下选项:

选项 说明
--coverage 使用 dotnet-coverage 工具收集代码覆盖率。
--coverage-output 生成的覆盖率文件的名称或路径。 默认情况下,该文件名为TestResults/<guid>.coverage
--coverage-output-format 输出文件格式。 支持的值为:coveragexmlcobertura。 默认值为 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"