2

我正在使用 SonarQube 和 Jenkins。在 Jenkins 中,我使用 nUnit 检查单元测试并使用 opencover 检查覆盖率。opencover 的报告显示在 Sonar 中,但 nunit 的报告不显示。单元测试计数甚至没有显示在项目的主页中。

这是我所做的:

  1. 使用 MSBuild 构建我的 VisualStudio 项目
  2. 使用批处理命令行运行 nunit 和 opencover
  3. 运行 SonarQube 扫描仪的分析
  4. 打包项目

第 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

编辑

我还尝试了以下过程(结果相同):

  1. 准备 SonarQube 扫描仪的分析
  2. 使用 MSBuild 构建我的 VisualStudio 项目
  3. 使用批处理命令行运行 nunit 和 opencover
  4. 结束 SonarQube 扫描仪的分析
  5. 打包项目

结束编辑

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 扫描仪。结果相同。

结束编辑

4

1 回答 1

2

Take a look at: SonarQube documentation: Unit Test Execution Results Import (C#, VB.NET)

It says:

Drilldown on Test Execution Results is not supported

My understanding is that you can only see the results (number of Tests passing, errors, etc) but not detail from the tests.

You also ask about Logs. You have:

于 2016-08-09T21:31:03.830 回答