使用Jenkins我试图将Nunit任务和OpenCover任务的结果传递给SonarQube。
SonarQube正确显示测试覆盖率,但没有单位测试结果的痕迹。
以下是我的工作:
以下是Sonar Scanner任务的实际属性:
sonar.projectKey=FC
sonar.projectName=FC
sonar.projectVersion=%SVN_REVISION%
sonar.sources=src
sonar.binaries=build
sonar.exclusions=src/FC.Test/**/*.*
sonar.tests=src/FC.Test
sonar.cs.nunit.reportsPaths=TestResult.xml
sonar.cs.opencover.reportsPaths=reports/opencovertests.xml
我正在使用SonarQube 5.6,Jenkins 2.10,SonarQube插件2.4.3,OpenCover 4.5和Nunit 2.6.4
是否存在任何已知问题(兼容性问题......)?
请注意,我尝试使用Prepare和Terminate Sonar分析任务包装我的过程,但系统地删除了覆盖面板。所以我删除了它。
2017年编辑
我停止这样做了。我知道这样做的好方法是使用SonarQube Scanner for MSBuild,它集成在Jenkins的插件中。 覆盖面板未显示,因为我没有正确配置我的质量配置文件。但是...
我仍然没有在声纳中测试结果。
我检查了报告的绝对路径以及sonarQube的解析:“INFO: Sensor C# Unit Test Results Import [csharp] (done) | time=25ms
”。我也试过一个.nunit文件。我看到应用过滤器对opencover有帮助,所以我做了。
你有线索吗?
答案 0 :(得分:2)
扫描C#项目需要使用Sonar扫描仪进行MSBuild,并按照特定的3个步骤进行操作,我想您现在还没有完成。请参阅有关3个步骤流程的文档:http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild和http://docs.sonarqube.org/display/SCAN/From+Jenkins
您的属性看起来正确。但它们不会在声纳属性文件中提供,而是在 MSBuild.SonarQube.Runner.exe开始步骤的命令行参数中提供,例如:
MSBuild.SonarQube.Runner.exe begin <allMandatoryParameters> /d:sonar.cs.nunit.reportsPaths=TestResult.xml /d:sonar.cs.opencover.reportsPaths=reports\opencovertests.xml
奥利弗