当前位置: 首页 > 知识库问答 >
问题:

SonarQube 4.4仪表板中未显示代码覆盖率和单元测试成功值

谢泽语
2023-03-14

环境:Windows 7 | sonar cube 4.4 | sonar runner 2.4 |。NET (C#) | Visual Studio专业版2013

我一直在使用声纳3.2

同样的配置,当我升级到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

我知道我们需要通过一个批处理文件获得覆盖率XML文件,使用它我们可以在SonarQube Dashboard中看到覆盖率结果。

我无法获得通过批处理文件生成的覆盖率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

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

问候, KP

共有2个答案

方树
2023-03-14

得到覆盖结果后,您将能够使用CodeCoverage工具生成声纳所需的XML文件,而不是使用收集修饰符,使用分析

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

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

阴永逸
2023-03-14

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

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"
 类似资料:
  • 新的一年 之前因为上家公司的经营出了问题,年前的大裁员,过了一个漫长的春节。 之后加入了新公司,然后正好赶上一个很紧急的项目,忙成狗,因此好久没更新文章了。 不过,我又回来啦! 前言 自动化测试,我们将使用karma和nightmare,内容会包括: 单元测试 e2e测试(放下一篇文章) 其实,单元测试一般用在写公共包的时候,比如通用的js函数库,通用的UI组件库。基本不太会在做业务项目的时候还使

  • 我将sonarqube jacoco用于codecoverage,我有一个junit测试用例用于我的java代码,它采用的是下面的目录结构。 我希望在sonarqube仪表板上有一个代码覆盖率,我也在使用gradle。 我正在运行gradle sonarqube 我不知道我哪里做错了?如果有任何一个可以帮助从java代码中获得测试用例的覆盖面。

  • 这是我的nodejs类型脚本类和ISHELTHY()公共方法的书面jest单元测试。 测试覆盖率表明这一点。pingCheck()则不包括block、catch和last return语句。请告知。 我们可以做pingcheck私有方法的单元测试吗? 这是我的课 这是我的单元测试代码。我在运行npm运行测试时遇到以下错误 (节点:7876)未处理的PromisejectionWarning:Typ

  • 我正在将ANT构建转换为Maven。我不用声纳。 在Maven中,Jacoco似乎并没有报告单元测试本身的覆盖率,而ANT报告。我也一直在尝试为我的Maven build获得这个,但是我没有找到任何东西。 似乎我应该添加一个

  • 我正在尝试用C语言实现一个测试环境,它似乎比我预期的要困难得多。似乎我有3个选择: 1) 通过接口注入依赖关系。 2)通过模板注入依赖关系 这里可以找到这些选项的一个很好的讨论:C中依赖注入的接口与模板 3) 为每个需要模拟/存根的测试生成不同的可执行文件。 选项1和2需要对源代码进行大量修改,我并不十分喜欢这些修改。我不应该为了测试而牺牲性能/清晰度。另一方面,为每个测试制定不同的项目似乎也不是

  • 当使用 生成覆盖率报告后,我的测试在代码覆盖率报告中显示为100%覆盖,如下所示 我尝试将测试移动到它自己的文件夹中,但仍然会得到相同的结果 实际的单元测试不应该出现在覆盖率报告中,并且扭曲了我的覆盖率。它应该只显示实际程序的覆盖范围。