分析 Testing Platform 测试的覆盖率
使用 Microsoft.Testing.Platform 的测试框架,例如 TUnit ,会在测试进程内运行测试。 为了将覆盖率数据归属到各个测试,dotCover 需要知道每个测试在该进程中何时开始和结束。 JetBrains.dotCover.Framework NuGet 软件包会将这些测试边界报告给 dotCover。
将此软件包添加到要分析覆盖率的每个 Testing Platform 测试项目。
使用 VSTest 的测试项目不需要此软件包。
将 dotCover 软件包添加到测试项目
将该软件包添加到测试项目:
dotnet add package JetBrains.dotCover.Framework如果测试项目使用生成的入口点,则无需更改代码。
如果将
GenerateTestingPlatformEntryPointMSBuild 属性设置为false并提供自己的主要方法,请手动注册该扩展程序:JetBrains.dotCover.Framework.TestingPlatformBuilderHook.AddExtensions(testApplicationBuilder, args);运行单元测试覆盖率分析 ,一如往常。 单元测试覆盖率 窗口现在会显示每个测试的覆盖率,并且可以 导航到覆盖的测试。
从命令行分析覆盖率
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日