sonarQube 中未显示代码覆盖率和单元测试数量

问题描述 投票:0回答:1

我正在使用 sonarQube 来分析 .net6 中的代码。 我已经安装了 sonarScanner 并运行这 3 个命令:

dotnet sonarscanner begin /k:"<sonar-project-key>"
    /d:sonar.login="<sonar-token>"
    /d:sonar.cs.dotcover.reportsPaths=dotCover.Output.html
dotnet build –no-incremental
dotnet dotcover test --dcReportType=HTML
dotnet sonarscanner end /d:sonar.login="<sonar-token>"

我使用 nunit 编写了很多单元测试,但是单元测试的数量为 0

1

我尝试添加 /d:sonar.cs.nunit.reportsPaths="Nunit\Result.xml" 但什么也没发生

您能帮忙透露一下缺少的配置吗?

unit-testing sonarqube code-coverage .net-6.0 sonarscanner
1个回答
0
投票

我使用 Coverlet 修复了该问题并导出为 OpenCover 格式。

确保这些包已添加到您的 xunit 测试项目中:

coverlet.collector
coverlet.msbuild

扫描:

dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover  /p:CoverletOutput="../../" --logger:"trx;LogFileName=..\..\..\TestResult.trx"

dotnet sonarscanner begin /k:"test" /d:sonar.host.url="http://localhost:9000"  /d:sonar.token="XXX" /d:sonar.cs.opencover.reportsPaths="coverage.opencover.xml" /d:sonar.cs.vstest.reportsPaths=TestResult.trx

dotnet build

dotnet sonarscanner end /d:sonar.token="XXX"         

注意:在此示例中,单元测试位于“ ests\Project.Tests\Project.Tests.csproj”,因此输出将放置在“\”上。这也是扫描仪运行的路径。

© www.soinside.com 2019 - 2024. All rights reserved.