nUnit 的结果未显示在 SonarQube 中

Posted

技术标签:

【中文标题】nUnit 的结果未显示在 SonarQube 中【英文标题】:nUnit's results are not displayed in SonarQube 【发布时间】:2018-03-21 20:36:48 【问题描述】:

我正在使用 SonarQube 和 Jenkins。在 Jenkins 中,我使用 nUnit 检查单元测试并使用 opencover 检查覆盖率。 Opencover 的报告显示在 Sonar 中,但 nunit 的报告不显示

我按照Analysing with SonarQube Scanner for Jenkins 和Unit Test Execution Results Import 的说明进行操作

我的“为 MSBuild 开始分析和 SonarQube”参数:

/d:sonar.sources="Foo.Bar.Business, Foo.Bar.Data, Foo.Bar.Web, Foo.Bar.FileGen, Foo.Bar.FileInt, Foo.Bar.Revision"
/d:sonar.binaries="Build/Foo.Bar.Business.dll, Build/Foo.Bar.Data.dll, Build/Foo.Bar.Web.dll, Build/Foo.Bar.FileGen.exe, Build/Foo.Bar.FileInt.exe, Build/Foo.Bar.Revision.exe, Build/Foo.Bar.TableauDeBord.exe"
/d:sonar.exclusions="Foo.Bar.Web/Scripts/JQuery/**/*, Foo.Bar.Web/Scripts/MomentJS/**/*, Foo.Bar.Web/Scripts/CanvasJS/**/*, Foo.Bar.Web/Scripts/JQueryUi/**/*, Foo.Bar.Web/Scripts/DataTables/**/*, Foo.Bar.Web/Content/**/*, Foo.Bar.Web/App_Start/**/*, Foo.Bar.Data/Model/**/*, Model/**/*, **/AssemblyInfo.cs, **/*Test.cs, Foo.Bar.Test.Web/**/*, Foo.Bar.JeuTest/**/*, Foo.Bar.Gestion.Web/**/*, **/*.js"
/d:sonar.tests="Foo.Bar.Test"
/d:sonar.cs.opencover.reportsPaths="D:/Program Files (x86)/Jenkins/workspace/Bar/reports/opencovertests.xml"
/d:sonar.cs.nunit.reportsPaths="D:/Program Files (x86)/Jenkins/workspace/Bar/reports/TestResult.xml"

我的“在 msbuild 之后”的命令(windows):

MKDIR "%WORKSPACE%\reports"
MKDIR "%WORKSPACE%\reports-history"

SET COV_PTH="D:\Programmes\opencover.4.6.519"
SET TOOL_PATH="D:\Programmes\NUnit-3.4.1"
SET RPT_PATH="D:\Programmes\ReportGenerator"

%COV_PTH%\OpenCover.Console.exe -target:"%TOOL_PATH%\bin\nunit3-console.exe" -targetargs:"Build\Foo.Bar.Test.dll -result:reports\TestResult.xml;format=nunit2" -filter:"+[Foo.Bar.*]*  -[Foo.Bar.Test]* -[Foo.Bar.Data]Foo.Bar.Data.Model.*" -register -output:"reports\opencovertests.xml"

%RPT_PATH%\ReportGenerator.exe "-reports:reports\opencovertests.xml" "-targetdir:reports-ReportGenerator" "-historydir:reports-history"

版本:

詹金斯:2.74 SonarQube:6.5 适用于 MSBuild 的 SonarQube 扫描仪:3.0.2.656 SonarQube 扫描仪:3.0.3.778 SonarC# 插件:6.4.1 OpenCover:4.6.519 nUnit : 3.4.1 MSBuild:14

【问题讨论】:

Sonar C# 插件的版本是多少?对 NUnit 的支持来自最新版本 - 6.4。 @Valeri-SonarSourceTeam 6.4.1 @Valeri-SonarSourceTeam 你知道发生了什么吗?您想了解更多信息吗? @Valeri-SonarSourceTeam 一年后,问题仍然存在...... 【参考方案1】:

调用 OpenCover.Console.exe 时需要使用参数+值: 仅-register:user 而不是-register。 在同一命令行中,请确保位于文件夹D:/Program Files (x86)/Jenkins/workspace/Bar/,最终存储报告。

【讨论】:

以上是关于nUnit 的结果未显示在 SonarQube 中的主要内容,如果未能解决你的问题,请参考以下文章

长期分支的 Sonarqube 分支结果未按预期显示

Sonarqube 未显示 Android Lint 的结果

Sonarqube 运行后未显示代码覆盖率

TFS 构建未显示测试结果摘要

代码覆盖率结果未使用 sonarqube 中的分支进行更新

Karma 代码覆盖率未在 Sonarqube 中显示