首页 > 解决方案 > C# 测试覆盖在 SonarQube 仪表板中为空

问题描述

我已经在本地配置了 SonarQube。我能够成功扫描并构建我的 C# 项目。在 SonarQube 仪表板中,所有指标都正确显示,但测试覆盖率未显示并且该指标为空。

在这个 WPF 项目中。我们有用 xunit、nunit 和 mstest 编写的测试用例。

我的项目结构看起来像这样。

.sonarqube
packages
abcompany.Xyz.Tests
abcompany.Xyz.Api
abcompany.Xyz.Api.Tests
abcompany.Xyz.Api.Tool
abcompany.Xyz.Api.Tool.Tests
abcompany.Xyz.Common
abcompany.Xyz.Common.Tests
abcompany.Xyz.Service
abcompany.Xyz.Service.Tests
abcompany.Xyz.Service
abcompany.Xyz.UI
abcompany.Xyz.UI.Tests
abcompany.Xyz.UI.Common
SonarQube.ps
abcompany.Xyz.sln

在 SonarQube.ps 我有,

SonarScanner.MSBuild.exe begin /k:"abcompany-proj" /d:sonar.host.url="http://localhost:9000" 
/d:sonar.login="---token---" 

MsBuild.exe  /t:Rebuild

SonarScanner.MSBuild.exe end /d:sonar.login="---token---"
  1. 我是否明确需要提及一些参数来构建或运行测试项目以获得覆盖率?
  2. 如果是这样,我缺少哪些参数?
  3. MSBuild 可以单独进行测试覆盖,还是我需要使用第 3 方来生成 coverage.xml(例如使用 Open Cover 或 Visual Studio Code Coverage)。在 Java 中,他们为此使用 Jacoco。
  4. 我们可以使用 Jacoco 进行 C# 测试覆盖吗?

在此先感谢,任何人都可以指导我实现这一目标。

标签: c#.netmsbuildsonarqubecode-coverage

解决方案


推荐阅读