Jenkins SonarQube:nUnit';将不显示的结果

Jenkins SonarQube:nUnit';将不显示的结果,jenkins,sonarqube,nunit,opencover,sonarqube-scan,Jenkins,Sonarqube,Nunit,Opencover,Sonarqube Scan,我用的是SonarQube和Jenkins。在Jenkins中,我用nUnit检查单元测试,用opencover检查覆盖率。opencover的报告显示在Sonar中,但nunit的报告不显示。单元测试计数甚至没有显示在项目的主页中 以下是我的工作: 使用MSBuild构建我的VisualStudio项目 使用批处理命令行运行nunit和opencover 运行SonarQube扫描仪的分析 打包项目 步骤2的命令行: MKDIR "%WORKSPACE%\reports" MKDIR "%WO

我用的是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"
    
    步骤3的参数:

    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
    
    编辑

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

  • 准备声纳QUBE扫描仪的分析
  • 使用MSBuild构建我的VisualStudio项目
  • 使用批处理命令行运行nunit和opencover
  • 末端声纳qube扫描仪的分析
  • 打包项目
  • 结束编辑

    nUnit的报告在workspace/reports/TestResult.xml中生成

    我通过命令行和用于jenkins的sonarqube插件测试了分析生成。我得到了同样的结果

    你能看出什么不对劲吗

    我可以查一下Qube的日志吗

    我正在使用Jenkins 2.10、MSBuild 12、SonarQube 5.6、SonarQube扫描仪,用于Jenkins插件2.4.3、opencover 4.5和nunit 2.6.4

    编辑

    我更新了我的配置:Jenkins 2.18,MSBuild 14,SonarQube scanner for Jenkins插件2.4.4。同样的结果

    结束编辑查看:

    它说:

    不支持对测试执行结果进行深入分析

    我的理解是,您只能看到结果(通过测试的次数、错误等),而不能看到测试的细节

    您还可以询问日志。你有:

    • 詹金斯工作日志
    • SonarQube后台任务:以管理员身份登录->管理->项目->后台任务->每次执行的最右侧-->
    • SonarQube日志:sonar\u安装\u目录\logs

    在/data/ce/中找到了日志,但这里没有什么有趣的内容(没有错误,没有警告,只有信息)。我仍然被卡住了。如果您需要更多详细信息,请告诉我。您找到解决方案了吗?我以完全相同的行为运行,sonarqube中根本没有单元测试结果(也没有代码覆盖)。我已经完成了静态代码分析。在我的例子中,测试执行结果甚至没有显示出来。但是谢谢你的提示,我将遵循SONARNTEST-22功能。你看过Sonar中的项目仪表板了吗?在那里我可以看到总数……但是,如果我去了它应该“列出”测试的地方,它会在“没有测试”或“没有结果”这行下面写一些东西。另一个建议是,我调用nUnit,通过传递参数“XML”而不是您使用的参数“result”来指示结果XML的路径。项目仪表板显示测试的覆盖范围,但不显示测试结果。我已经尝试了xml参数,但没有成功。使用结果文件的绝对路径如何?