我在詹金斯中使用 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 代码指标插件中看到的那样。
请指教!
谢谢