无法使用 Reportgenerator 生成 HTML 覆盖率报告

Cannot generate HTML coverage report using Reportgenerator

我有一个带有一些单元测试的 .net 核心项目。我想得到它的报道。所以,我按照以下官方 MS documentation

的步骤操作

一切都很顺利,直到我需要 运行 以下代码生成 HTML 报告的最后一步:

reportgenerator
-reports:"Path\To\TestProject\TestResults\{guid}\coverage.cobertura.xml"
-targetdir:"coveragereport"
-reporttypes:Html

我得到的错误是:

下面是生成xml时的输出:

所以,我对如何生成最终 HTML 报告有些迷茫。有人可以帮忙吗?

顺便说一句,您可能会看到我正在使用 zsh 从 Mac 尝试它。所以,不确定这是否会影响。

从控制台的错误来看,您指定的文件路径可能不正确。我相信在使用 coverlet 时,每次都会在随机 GUID 文件夹下生成文件。

在第一个屏幕截图中,可见路径如下所示:UnitTests/TestResults/{SomeGuid}/coverage.cobertura.xml

但在第二个屏幕截图中,文件路径在生成报告时显示 .UnitTest/coverage.cobertura.xml。我相信生成报告的路径应该是报告命令的输入

我在我的 azure devops 管道中集成了报告生成器,由于我们不能确定 GUID,我使用下面的命令在根文件夹中找到所有匹配的文件

reports: '$(Build.SourcesDirectory)/**/*cobertura.xml'
targetdir: '$(System.DefaultWorkingDirectory)/CoverageResults'

这样它会在我的源目录中查找所有以 cobertura.xml 结尾的文件,而不用担心确切的路径。

经过几个小时试图找出问题所在,我终于找到了。这可能看起来像一个愚蠢的解决方案,但天哪,我希望官方文档提到与之相关的内容。

解决方案是将所有代码放在一行中,

原代码(来自官方文档):

reportgenerator
-reports:"Path\To\TestProject\TestResults\{guid}\coverage.cobertura.xml"
-targetdir:"coveragereport"
-reporttypes:Html

固定:

 reportgenerator -reports:"Path\To\TestProject\TestResults\{guid}\coverage.cobertura.xml" -targetdir:"coveragereport" -reporttypes:Html

不确定我的终端中的设置是否可以在这里发挥作用,但将所有代码放在一行中会起作用。