【问题标题】:Code coverage and Unit test success values are not displaying in SonarQube 4.4 dashboardSonarQube 4.4 仪表板中未显示代码覆盖率和单元测试成功值
【发布时间】:2014-12-15 10:48:13
【问题描述】:

环境:Windows 7 | SonarQube 4.4 | SonarRunner 2.4 | .NET (C#) | Visual Studio 专业版 2013

我一直在使用 Sonar 3.2 和 SonarRunner 2.0。代码覆盖率和单元测试成功值显示在 Sonar 仪表板中。

使用相同的配置集,当我升级到 SonarQube 4.4 和 SonarRunner 2.4 时,代码覆盖率和单元测试成功值不会显示在 SonarQube 4.4 仪表板中。

声纳项目属性:

# Project identification
sonar.projectKey=LLTest_Sonar_Report
sonar.projectVersion=1.0
sonar.projectName=LLTest

# Info required for Sonar 
sonar.sources=.
sonar.language=cs
sonar.sourceEncoding=UTF-8

sonar.visualstudio.enable=true

#Code Coverage
sonar.cs.opencover.reportPaths=coverage.xml
#sonar.cs.vstest.reportsPaths=results.trx

#Core C# Settings
sonar.dotnet.visualstudio.solution.file=LLTest.sln
sonar.silverlight.4.mscorlib.location=C:/Program Files/Reference Assemblies/Microsoft/Framework/Silverlight/v4.0
sonar.dotnet.excludeGeneratedCode=true
sonar.dotnet.4.0.sdk.directory=C:/Windows/Microsoft.NET/Framework/v4.0.30319
sonar.dotnet.version=4.0 

# To prevent any issues while analyzing multiple solutions containing projects with similar keys
# Will be set by default to safe starting at version 2.2: http://jira.codehaus.org/browse/SONARDOTNT-339
#sonar.dotnet.key.generation.strategy=safe

#Gendarme
sonar.gendarme.mode=

# Gallio / Unit Tests

sonar.gallio.installDirectory=C:/Program Files/Gallio

sonar.gallio.coverage.tool=OpenCover
sonar.opencover.installDirectory=C:/Program Files/OpenCover/

#sonar.opencover.mode=reusereport
#sonar.cs.vstest.reportsPaths=TestResult.trx

sonar.dotnet.visualstudio.testProjectPattern=*.Tests;*.UnitTests
sonar.dotnet.test.assemblies=C:/Users/kprasad/Documents/Visual Studio 2013/Projects/LLTest/LLTest.Tests/bin/Debug/LLTest.Tests.dll

sonar.gallio.mode=reusereport
sonar.gallio.reports.path=gallio-report.xml
sonar.gallio.coverage.reports.path=coverage-report.xml

sonar.stylecop.projectFilePath=C:/Users/kprasad/Documents/Visual Studio 2013/Projects/LLTest/LLTest/LLTest.csproj
sonar.stylecop.installDirectory=C:/Program Files/StyleCop 4.7
sonar.resharper.projectName=LLTest
sonar.resharper.solutionFile=LLTest.sln
sonar.cs.fxcop.fxCopCmdPath=C:/Program Files/Microsoft Visual Studio 12.0/Team Tools/Static Analysis Tools/FxCop/FxCopCmd.exe
sonar.cs.fxcop.assembly=C:/Users/kprasad/Documents/Visual Studio 2013/Projects/LLTest/LLTest.Tests/bin/Debug/LLTest.Tests.dll

# FXCop 
#sonar.fxcop.mode=reusereport 

# StyleCop 
#sonar.stylecop.mode=reusereport

# NDeps
#sonar.ndeps.mode=reusereport

知道我们需要通过批处理文件生成 Coverage XML 文件,并使用它可以在 SonarQube Dashboard 中查看覆盖结果。

我无法获取通过包含以下内容的批处理文件生成的 Coverage XML 文件:

cd C:\Users\kprasad\Documents\Visual Studio 2013\Projects\LNTest“C:\Program Files\Microsoft Visual Studio 12.0\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe” collect /output:VisualStudio1.coverage “C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe” “C:\Users\kprasad\Documents\Visual Studio 2013\Projects\LNTest\LNTest.Tests\bin\Debug\LNTest.Tests.dll”“C:\Program Files\Microsoft Visual Studio 12.0\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe” analyze /output:VisualStudio.coveragexml VisualStudio.coverage pause

请帮忙。如果需要任何其他详细信息,请告知,谢谢。

问候, 关卡

【问题讨论】:

    标签: c# code-coverage sonarqube


    【解决方案1】:

    我们有这些批处理文件行来获取打开的封面结果文件:

    set Configuration=debug
    set MSTest=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\MSTest.exe
    call "%~dp0packages\OpenCover.4.5.2506\OpenCover.Console.exe" -register:user -target:"%MSTest%" -targetargs:"/resultsfile:Project.Name.Tests.trx /noisolation /testcontainer:%~dp0Project.Name.Tests\bin\%Configuration%\Project.Name.Tests.dll" -filter:+[Project.Name]* -output:"%~dp0results.xml"
    

    【讨论】:

    • %Configuration% 变量从何而来? -filter 的 Project.Name 参数是我应该用实际值替换的占位符,还是文字值?
    • 批量示例已更新。配置是调试或发布。是的,您需要将示例中的 Project.Name 替换为您自己的项目名称。
    【解决方案2】:

    得到覆盖结果后,就可以使用 CodeCoverage 工具生成 sonar 所需的 XML 文件,而不是使用 collect 修饰符,使用分析:

    “C:\Program Files\Microsoft Visual Studio 12.0\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe” analyze /output:VisualStudio1.coverageXml VisualStudio1.coverage
    

    但诀窍是在另一个步骤中使用它,而不是在脚本的同一行中

    【讨论】:

      猜你喜欢
      • 2017-11-18
      • 1970-01-01
      • 2016-02-03
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 2012-01-18
      • 2014-02-21
      相关资源
      最近更新 更多