由于C#生态系统3不再支持Gallio,我目前正在更改Sonar设置。我已经通过以下命令使用OpenCover成功导入了单元测试覆盖率。
"C:Program Files (x86)OpenCoverOpenCover.Console.exe" -register -target:"c:Program Files (x86)NUnit 2.6.3binnunit-console-x86.exe" -targetargs:"d:SonarMyTest.dll /noshadow /framework=net-4.0" -output:"d:DeploySonarCoverage.xml" "-filter:+[*]* -[*]Test"
通过这个命令,我只得到单元测试覆盖率,但我也想看看失败和成功测试的数量。我想我可以用这样的/result选项来实现这一点
"C:Program Files (x86)OpenCoverOpenCover.Console.exe" -register -target:"c:Program Files (x86)NUnit 2.6.3binnunit-console-x86.exe" -targetargs:"d:DeploySonarMyTest.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文件?
OpenCover现在由SonarQube正式支持,请参阅SonarQobe文档。您可以传递使用命令行参数生成的XML报告OpenCover的位置
/d:sonar.cs.opencover.reportsPaths="%path%%report_file%"
其中%path%
是生成报告文件的文件夹,%report_file%
是OpenCover XML报告的文件名。
来自http://docs.codehaus.org/display/SONAR/C%23+插件,看起来你只能导入MSTest格式的单元测试执行报告。
感谢以下网站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