代码覆盖率:.NET 代码覆盖率和 SonarQube VSTS 集成

Posted

技术标签:

【中文标题】代码覆盖率:.NET 代码覆盖率和 SonarQube VSTS 集成【英文标题】:Code Coverage: .NET Code Coverage and SonarQube VSTS Integration 【发布时间】:2018-01-11 10:17:05 【问题描述】:

有谁知道为什么代码覆盖率不适用于 .NET(完整框架)在 Sonarqube 中集成/发布结果? 这是我的脚本:

@ECHO OFF

MSBuild.SonarQube.Runner.exe begin /k:"CalculatorConsole" /n:"CalculatorConsole" /v:"1.0" /d:sonar.cs.vscoveragexml.reportsPaths="%CD%\VisualStudio.coveragexml"
MSBuild.exe /t:Rebuild


"%VSAPPIDDIR%\..\..\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe" collect /output:"%CD%\VisualStudio.coverage"
"%VSAPPIDDIR%\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "CalculatorConsole.Tests\bin\debug\CalculatorConsole.Tests.dll"

"%VSAPPIDDIR%\..\..\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe" analyze /output:"%CD%\VisualStudio.coveragexml" "%CD%\VisualStudio.coverage"

MSBuild.SonarQube.Runner.exe end

运行脚本后,没有发现任何错误,Sonar 中也没有发布代码覆盖率!

【问题讨论】:

您是否查看了 SonarQube 日志(在 debug/trace 上设置 sonar.log.level)? 【参考方案1】:

如果您使用的是 Visual Studio 2017,SonarQube 最近修复了扫描仪无法通过 Visual Studio 2017 获得代码覆盖率的问题。

这是来自 SonarQube 的问题。 https://jira.sonarsource.com/browse/SONARMSBRU-330

3.0.1 版已于 8 月 3 日发布。

【讨论】:

以上是关于代码覆盖率:.NET 代码覆盖率和 SonarQube VSTS 集成的主要内容,如果未能解决你的问题,请参考以下文章

代码覆盖率:.NET 代码覆盖率和 SonarQube VSTS 集成

Azure DevOps:如何为不同的测试(.net core、angular)合并两个代码覆盖率报告

未从 Azure Devops .NET 核心构建获得 SonarCloud 中的代码覆盖率

使用 docker 将代码覆盖率结果添加到 Azure Pipelines for .NET6 Web API

.Net core基于xUnit的单元测试查看测试覆盖率

.Net core基于xUnit的单元测试查看测试覆盖率