0

在此处输入图像描述我在詹金斯中使用 MSTest 进行单元测试。我能够成功地将 MSTest 插件与 Jenkins 集成。它正在执行单元测试并在特定位置生成一个 TestResults.trx 文件。现在,我想将该文件传递给 SonarQube。所以,我可以在 SonarQube 上看到代码覆盖率结果。目前我已经配置了没有代码覆盖的声纳。它在没有单元测试结果的情况下获取所有数据。要将文件传递给声纳,我在此处的声纳文档中找到了此详细信息https://docs.sonarqube.org/pages/viewpage.action?pageId=6389772

我试图在声纳中传递参数/d:sonar.cs.vstest.reportsPaths=%CD%\MSTestResults.trx。它没有用。我通过更改目录和其他东西尝试了多次,但没有帮助。有没有人这样做过?为什么 Jenkins 中的 SonarQube 插件没有阅读这个论点!!!

我可以在构建详细信息中看到它正在读取我正在传递的 agrument 并且它正在寻找正确位置的文件。它仍然没有对那个文件做任何事情。根据下面的构建细节,

[Test] $ D:\jenkins\tools\hudson.plugins.sonar.MsBuildSQRunnerInstallation\SonarQubeScanner_MSBuild\MSBuild.SonarQube.Runner.exe begin /k:Test_Jenkins /n:Test_Jenkins /v:1.0 /d:sonar.host.url=http://xxxxxxx:9000 ******** /d:sonar.cs.vstest.reportsPaths=D:\jenkins\workspace\Test\TestResults.trx SonarQube Scanner for MSBuild 2.3.2

对于第二个选项

我还尝试使用 Visual Studio Code 指标(https://wiki.jenkins-ci.org/display/JENKINS/Visual+Studio+Code+Metrics+Plugin)来获得代码覆盖率。我可以在詹金斯中设置它。我可以在 jenkins 中看到代码覆盖率结果,当我尝试将该文件传递给声纳时,它不起作用。

我正在获取 metrics.xml 文件作为覆盖结果的输出。我试图通过传递参数将它提供给声纳/d:sonar.cs.vscoveragexml.reportesPaths="${WORKSPACE}\metrics.xml

仍然无法正常工作。我得到了代码覆盖率的结果,正如您在下面的 Visual Studio 代码指标插件中看到的那样。在此处输入图像描述

请指教!

谢谢

4

1 回答 1

0

我认为您正在混合两个概念。在 SonarQube 中,您可以提供测试执行报告,以便您在 SonarQube 中跟踪有关测试执行的一些统计信息(测试数量、成功百分比、持续时间……)。这是通过传递属性之一sonar.cs.vstest.reportsPathssonar.cs.nunit.reportsPaths来完成的sonar.cs.xunit.reportsPaths。老实说,这是一个历史特征,兴趣非常有限。

更有趣的是向 SonarQube 提供测试覆盖率报告。这是通过传递属性之一来完成的,sonar.cs.ncover3.reportsPaths或者取决于您用来测量覆盖率的工具。sonar.cs.opencover.reportsPathssonar.cs.dotcover.reportsPathssonar.cs.vscoveragexml.reportsPaths

于 2017-06-21T10:49:33.697 回答