如何使用 .Net Core 和 Coverlet 查看友好的单元测试报告?

Fel*_*sto 7 testing automated-tests unit-testing code-coverage .net-core

我正在使用 Coverlet 和 .Net Core 来开发 API,我开始进行单元测试(我为 .Net Core 找到的唯一工具是 Coverlet)。

我得到了覆盖,但我只能得到这样的文件jsonxml等等。

我需要查看 HTML 或更直观的内容才能快速处理测试。

这是我在终端上的当前输出:

+---------------------------+--------+--------+--------+
| Module                    | Line   | Branch | Method |
+---------------------------+--------+--------+--------+
| rede-merchants-cancel-api | 12,5%  | 0%     | 16,7%  |
+---------------------------+--------+--------+--------+
Run Code Online (Sandbox Code Playgroud)

和输出的一部分json

"Program.cs": {
  "Program": {
    "System.Void rede_merchants_cancel_api.Program::Main(System.String[])": {
      "Lines": {
        "9": 0,
        "10": 0,
        "11": 0
      },
      "Branches": []
    },
    "Microsoft.AspNetCore.Hosting.IWebHost rede_merchants_cancel_api.Program::BuildWebHost(System.String[])": {
      "Lines": {
        "14": 0,
        "15": 0,
        "16": 0
      },
      "Branches": []
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*abo 8

如果您想从带有源代码的代码覆盖率结果中看到一个漂亮而干净的 HTML 报告,您应该尝试使用 Daniel Palme 的ReportGenerator。床罩可以生成 coberturaXML类型报告和ReportGenerator可以生成一个HTML报告出来。在这里,您可以找到有关如何使用 Coverlet 和 ReportGenerator 的精彩分步教程。在您的 CI/CD 管道期间,可以使用Jenkins 插件轻松处理 Cobertura 报告。


Fel*_*sto 3

我找到了答案,我首先尝试的是使用docker-dotnet-sonarscanner,但我无法很好地设置,然后我采用了另一种方法:

  1. 安装coverlet,它为我提供了多种格式的 .Net Core 代码覆盖率:(json默认)lcovopencovercobertura.
  2. 为 VSCode 安装一个插件,我可以在其中以很好的方式看到代码覆盖率,它的名称是coverage-gutters
  3. 使用 coverlet 文档上提供的命令以格式输出代码覆盖率lcov,以便能够与代码覆盖率插件一起使用。
  4. 额外 - 使用插件在 VSCode 而不是 CLI 上运行测试(我没有尝试过),使用.Net Test Explorer是可能的,但我认为有必要更改命令才能输出您需要的内容。