如何合并两个或多个 dotnet 测试代码覆盖率文件

Pra*_*ado 7 .net code-coverage .net-core dotnet-test

我有一个 .Net 解决方案,其中包含两个 dotnet 核心类库及其相关的单元测试项目。

当我运行dotnet test **\*.Tests.csproj --collect "Code Coverage"命令时,它会为每个单元测试项目生成单独的 .coveragexml 文件。

我的要求是将所有 .coveragexml 文件合并到一个文件中,并使用它来获得整个解决方案的总覆盖矩阵。

是否有任何工具或脚本可以实现这一目标?

笔记:

  • 我没有使用 Coverlet。
  • 我正在使用内置的 vstest.console.exe 来运行测试并生成 .coveragexml 文件。
  • 我正在使用自定义代码覆盖率分析

h0p*_*3zZ 1

如果合并结果不需要仍然采用 .coveragexml 格式,您可以使用 ReportGenerator作为合并工具。

它是 GitHub 上的开源工具,采用多种输入格式(和文件),并且可以选择将其转换为多种其他格式。恐怕 .coveragexml 不是输出格式之一,但它是输入格式之一。

以下是在命令行中运行的示例:

OpenCover.Console.exe -target:"dotnet.exe" -targetArgs:"test {solution.sln}" -output:"{outputDir}\OpenCover.xml" {-oldstyle}
Run Code Online (Sandbox Code Playgroud)

有关命令的更多详细信息可以在ReportGenerator 文档中找到。

  • @Urasquirrel是的,我知道你的意思,但问题是如果链接失效,代码就没用了,因为你需要工具(链接):D但是如果你认为有必要,我会在答案中放入一些代码。 (2认同)