6

由于 C# 生态系统 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 文件?

4

3 回答 3

8

SonarQube 现在正式支持 OpenCover,请参阅SonarQube 文档。您可以传递使用命令行参数生成的 XML 报告 OpenCover 的位置

/d:sonar.cs.opencover.reportsPaths="%path%\%report_file%"

%path%生成报告文件的文件夹在哪里,并且%report_file%是 OpenCover XML 报告的文件名。

于 2017-10-24T09:07:38.193 回答
1

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

于 2014-10-24T06:44:01.313 回答
1

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

sonar.cs.vstest.reportsPaths=MyTestRestultFile.trx
于 2014-10-30T09:41:47.370 回答