如何使用詹金斯获得声纳中的女士测试代码覆盖率

时间:2018-08-06 20:22:24

标签: visual-studio sonarqube jenkins-pipeline

我一直在尝试使用Jenkins获得声纳中的代码覆盖率。我已经提供了.run设置文件来覆盖ms测试代码,但仍然无法显示声纳仪表板。

我在jenkins管道中运行这些命令。 /d:sonar.cs.vscoveragexml.reportsPaths = *。coverage“

我如何生成codecoveragexml文件?请您帮我一下。

1 个答案:

答案 0 :(得分:0)

您必须使用正确的参数在构建服务器上运行 dotnet test 命令才能生成覆盖文件。在 Jenkins 中添加以下作为批处理步骤。

dotnet test --logger "trx;LogFileName=[You project name].trx" --collect "Code Coverage" 
--results-directory:"[Your project path]\TestResults"

请注意,上述命令中的 "Code Coverage" 文本应与 frieldlyName 文件的 DataCollector 标记的 run.settings 属性匹配。

当上面的命令运行时,它会创建一个 .coverage 文件,您需要将其转换为 .coveragexml。但是生成的文件会有一个随机的名字,所以需要先重命名。

ren *.coverage [Your project name].coverage

以下命令执行从 .coverage.coveragexml 的转换。

CodeCoverage analyze /output:[Your project name].coveragexml [Your project name].coverage

最后,将此 .coveragexml 文件的路径提供给 Sonar:

sonar.cs.vscoveragexml.reportsPaths=[Your project name].coveragexml

PS:您也可以将 .trx 文件提供给您在第一步中创建的 Sonar。然后声纳会告诉您更多有关您进行的测试数量、通过率和其他内容的信息。

sonar.cs.vstest.reportsPaths=[Your project name].trx