是否可以在SonarQube中导入OpenCover / result?

时间:2014-10-23 19:24:38

标签: c# unit-testing sonarqube opencover

我目前正在改变我们的Sonar设置,因为C#Ecosystem 3不再支持Gallio。我已经通过使用OpenCover并使用以下命令成功导入了单元测试覆盖率。

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -register -target:"c:\Program Files (x86)\NUnit 2.6.3\bin\nunit-console-x86.exe" -targetargs:"d:\Sonar\MyTest.dll /noshadow /framework=net-4.0" -output:"d:\Deploy\Sonar\Coverage.xml" "-filter:+[*]* -[*]Test"

使用此命令我只获得单元测试覆盖率,但我还希望看到失败和成功测试的数量。我想我可以用

这样的/ result选项实现这个目的
"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -register -target:"c:\Program Files (x86)\NUnit 2.6.3\bin\nunit-console-x86.exe" -targetargs:"d:\Deploy\Sonar\MyTest.dll /noshadow /framework=net-4.0 /result=tests.xml"

此命令返回一个xml,其中包含有关运行的测试的信息,但有没有办法将此xml导入SonarQube?或者这不受支持吗?

目前,我使用以下命令导入Coverage.xml文件:

sonar.cs.opencover.reportsPaths=D:/Deploy/Sonar/Coverage.xml

是否有类似的属性可以导入带有测试结果的tests.xml文件?

3 个答案:

答案 0 :(得分:5)

SonarQube现在正式支持OpenCover,请参阅SonarQube documentation。您可以传递使用命令行参数

生成的XML报告OpenCover的位置
/d:sonar.cs.opencover.reportsPaths="%path%\%report_file%"

其中%path%是生成报告文件的文件夹,%report_file%是OpenCover XML报告的文件名。

答案 1 :(得分:1)

http://docs.codehaus.org/display/SONAR/C%23+Plugin的文档中,您似乎只能导入MSTest格式的单元测试执行报告。

答案 2 :(得分:1)

感谢以下网站http://www.codewrecks.com/blog/index.php/2009/07/19/integrate-nunit-test-into-a-tfs-build/我能够使用XSLT转换将OpenCover测试结果的输出转换为.trx格式。转换后,我只使用了默认的导入功能

sonar.cs.vstest.reportsPaths=MyTestRestultFile.trx