我正在使用 SonarQube 和 Jenkins。在 Jenkins 中,我使用 nUnit 检查单元测试并使用 opencover 检查覆盖率。opencover 的报告显示在 Sonar 中,但 nunit 的报告不显示。单元测试计数甚至没有显示在项目的主页中。
这是我所做的:
- 使用 MSBuild 构建我的 VisualStudio 项目
- 使用批处理命令行运行 nunit 和 opencover
- 运行 SonarQube 扫描仪的分析
- 打包项目
第 2 步的命令行:
MKDIR "%WORKSPACE%\reports"
MKDIR "%WORKSPACE%\reports-history"
SET COV_PTH="D:\Programmes\opencover.4.5.3522"
SET TOOL_PATH="D:\Programmes\NUnit-2.6.4"
SET RPT_PATH="D:\Programmes\ReportGenerator"
copy src\Foo.Bar.Tests\app.config build\Foo.Bar.Tests.dll.config
%COV_PTH%\OpenCover.Console.exe "-filter:+[Foo.Bar*]* -[Foo.Bar.Tests]* -[Foo.Bar.Service]* -[Foo.Bar.Domain]* -[Foo.Bar.Dal]Foo.Bar.Dal.Dao.* -[Foo.Bar.Controller]Foo.Bar.Controller.*Comparer -[Foo.Bar.Controller]Foo.Bar.Controller.External.*" -register "-target:%TOOL_PATH%\bin\nunit-console.exe" -targetargs:"build\Foo.Bar.Tests.dll /noshadow /result=reports\TestResult.xml" -output:reports\opencovertests.xml
%RPT_PATH%\ReportGenerator.exe "-reports:reports\opencovertests.xml" "-targetdir:reports-ReportGenerator" "-historydir:reports-history"
第三步的参数:
sonar.projectKey=FooBar
sonar.projectName=FooBar
sonar.projectVersion=%SVN_REVISION%
sonar.sources=src/Foo.Bar.Controller, src/Foo.Bar.Dal, src/Foo.Bar.Domain, src/Foo.Bar.Fichier, src/Foo.Bar.Generation, src/Foo.Bar.Reporting, src/Foo.Bar.Service, src/Foo.Bar.Web
sonar.binaries=Build/Foo.Bar.Controller.dll, Build/Foo.Bar.Dal.dll, Build/Foo.Bar.Domain.dll, Build/Foo.Bar.Service.dll, Build/Foo.Bar.Fichier.exe, Build/Foo.Bar.Generation.exe, Build/Foo.Bar.Reporting.exe
sonar.tests=src/Foo.Bar.Tests
sonar.cs.opencover.reportsPaths=reports/opencovertests.xml
sonar.cs.nunit.reportsPaths=reports/TestResult.xml
编辑
我还尝试了以下过程(结果相同):
- 准备 SonarQube 扫描仪的分析
- 使用 MSBuild 构建我的 VisualStudio 项目
- 使用批处理命令行运行 nunit 和 opencover
- 结束 SonarQube 扫描仪的分析
- 打包项目
结束编辑
nUnit 的报告在workspace/reports/TestResult.xml 中很好地生成。
我通过命令行和 jenkins 的 sonarqube 插件测试了分析生成。我得到了同样的结果。
你能看出有什么不对吗?
我可以检查任何 SonarQube 的日志吗?
我正在为 Jenkins 插件 2.4.3、opencover 4.5 和 nunit 2.6.4 使用 Jenkins 2.10、MSBuild 12、SonarQube 5.6、SonarQube 扫描仪
编辑
我更新了我的配置:Jenkins 2.18、MSBuild 14、用于 Jenkins 插件 2.4.4 的 SonarQube 扫描仪。结果相同。
结束编辑