Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 詹金斯;SonarQube插件;“不是阅读论证”/d:sonar.cs.vstest.reportsPaths=";通过MSTest插件生成的单元测试结果文件路径_C#_Jenkins_Sonarqube_Sonarqube Scan_Jenkins Mstest - Fatal编程技术网

C# 詹金斯;SonarQube插件;“不是阅读论证”/d:sonar.cs.vstest.reportsPaths=";通过MSTest插件生成的单元测试结果文件路径

C# 詹金斯;SonarQube插件;“不是阅读论证”/d:sonar.cs.vstest.reportsPaths=";通过MSTest插件生成的单元测试结果文件路径,c#,jenkins,sonarqube,sonarqube-scan,jenkins-mstest,C#,Jenkins,Sonarqube,Sonarqube Scan,Jenkins Mstest,我在jenkins使用MSTest进行单元测试。我能够成功地将MSTest插件与Jenkins集成。它执行单元测试并在特定位置生成TestResults.trx文件。 现在,我想把那个文件传给SonarQube。所以,我可以在SonarQube上看到代码覆盖率结果。目前我的声纳配置没有代码覆盖。它在没有单元测试结果的情况下获取所有数据。为了将文件传递给sonar,我在sonar文档中找到了这些详细信息 我试图在sonar中传递参数/d:sonar.cs.vstest.reportspath=%C

我在jenkins使用MSTest进行单元测试。我能够成功地将MSTest插件与Jenkins集成。它执行单元测试并在特定位置生成TestResults.trx文件。 现在,我想把那个文件传给SonarQube。所以,我可以在SonarQube上看到代码覆盖率结果。目前我的声纳配置没有代码覆盖。它在没有单元测试结果的情况下获取所有数据。为了将文件传递给sonar,我在sonar文档中找到了这些详细信息

我试图在sonar中传递参数/d:sonar.cs.vstest.reportspath=%CD%\MSTestResults.trx。它不起作用。我已经尝试过多次更改目录和其他内容,但都没有用。 以前有人这样做过吗?为什么Jenkins中的SonarQube插件没有阅读此参数

我可以在构建细节中看到,它正在读取我正在传递的图形,并在正确的位置查找文件。但它仍然没有对那个文件做任何处理。根据以下构建细节

[Test]$D:\jenkins\tools\hudson.plugins.sonar.MsBuildSQRunnerInstallation\SonarQubeScanner\u MSBuild\MSBuild.SonarQube.Runner.exe begin/k:Test\u jenkins/n:Test\u jenkins/v:1.0/D:sonar.host.url=http://xxxxxxx:9000 ********/d:sonar.cs.vstest.reportsPaths=d:\jenkins\workspace\Test\TestResults.trx
MSBuild 2.3.2的SonarQube扫描仪

第二个选项

我还尝试使用VisualStudioCodeMetrics()来获得代码覆盖率。我可以在詹金斯设置它。我可以在jenkins中看到代码覆盖率的结果,当我试图将该文件传递给sonar时,它不起作用

我将metrics.xml文件作为覆盖率结果的输出。我试图通过传递参数
/d:Sonar.cs.vscoveragexml.reportesPaths=“${WORKSPACE}\metrics.xml

但它仍然不起作用。我正在获得代码覆盖率的结果,正如您在下面通过VisualStudioCodeMetrics插件看到的

请指教


谢谢

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


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

您能否将sonar属性与MSTest结果文件路径w.r.t Jenkins Workspace共享?您如何传递参数?在Jenkins作业配置或SonarQube服务器UI中?@Suresh-我编辑了带有MSTest和sonar属性屏幕截图的帖子。我尝试了多种方法传递sonar属性中的路径。它是我不知道work@JulienH.-我在构建配置中传递Jenkins的参数,正如我在文章中编辑的上述屏幕截图所示。尝试如下/d:sonar.cs.vstest.reportsPaths=%WORKSPACE%/TestResults.trx或$WORKSPACE/TestResults.trx您能告诉我在哪里可以找到关于第二个概念的更多详细信息,即如何将测试覆盖率报告提供给SonarQube吗我使用MSTest执行单元测试。没关系,我在测试覆盖率结果中找到了doc。好的,根据文档,我将不得不使用4个列表中的任何工具。当我查看jenkins插件商店时,我发现了这个名为“Visual Studio代码度量”的插件“根据文档,它说使用VisualStudio代码覆盖率。这是同一个工具吗?我使用VisualStudioCodeMetrics插件尝试了第二个选项。我也面临着同样的问题,正如你们在编辑过的原始帖子中看到的。如果你有什么建议,请提出来。