【问题标题】:Is it possible to import OpenCover /result in SonarQube?是否可以在 SonarQube 中导入 OpenCover /result?
【发布时间】:2014-12-19 13:50:59
【问题描述】:

我目前正在更改我们的声纳设置,因为 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文件?

【问题讨论】:

    标签: c# unit-testing sonarqube opencover


    【解决方案1】:

    SonarQube 现已正式支持 OpenCover,请参阅SonarQube documentation。您可以通过命令行参数传递生成的 XML 报告 OpenCover 的位置

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        感谢以下站点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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-09
          • 2013-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-13
          相关资源
          最近更新 更多