dotCover 2026.3 Help

分析 Testing Platform 测试的覆盖率

使用 Microsoft.Testing.Platform 的测试框架,例如 TUnit ,会在测试进程内运行测试。 为了将覆盖率数据归属到各个测试,dotCover 需要知道每个测试在该进程中何时开始和结束。 JetBrains.dotCover.Framework NuGet 软件包会将这些测试边界报告给 dotCover。

将此软件包添加到要分析覆盖率的每个 Testing Platform 测试项目。

使用 VSTest 的测试项目不需要此软件包。

将 dotCover 软件包添加到测试项目

  1. 将该软件包添加到测试项目:

    dotnet add package JetBrains.dotCover.Framework
  2. 如果测试项目使用生成的入口点,则无需更改代码。

    如果将 GenerateTestingPlatformEntryPoint MSBuild 属性设置为 false 并提供自己的 主要 方法,请手动注册该扩展程序:

    JetBrains.dotCover.Framework.TestingPlatformBuilderHook.AddExtensions(testApplicationBuilder, args);
  3. 运行单元测试覆盖率分析 ,一如往常。 单元测试覆盖率 窗口现在会显示每个测试的覆盖率,并且可以 导航到覆盖的测试。

从命令行分析覆盖率

dotCover 命令行工具 需要 --use-api 选项来记录 Testing Platform 测试的按测试统计数据:

dotCover cover --use-api --snapshot-output snapshot.dcvr -- test --no-build

要求

  • 与 .NET Standard 2.0 兼容的目标框架

  • Microsoft.Testing.Platform 2.3.0 或更高版本。 该扩展程序会通过平台的 MSBuild 集成 自动注册,基于该平台构建的测试框架默认使用此集成。

局限性

dotCover 会在覆盖率运行期间禁用并行测试执行,以保持按测试统计的数据准确。 无需更改测试框架的并行设置。 因此,覆盖率运行可能比不进行覆盖率分析的运行花费更长时间。

2026年 11月 10日