【问题标题】:SonarQube: Unable to import test coverageSonarQube:无法导入测试覆盖率
【发布时间】:2021-03-03 00:13:03
【问题描述】:

我安装了 SonarQube,并针对具有多个 xUnit 项目的 .Net 核心应用程序运行它。 SonarQube 发现了错误并且闻起来很好,但像很多人一样,我无法完成代码覆盖。

目前,我正在使用以下命令生成 cobertura 覆盖 XML 文件:

dotnet test --collect:"XPlat Code Coverage"

然后我将这些文件从每个测试项目复制到一个集中目录,并使用以下命令运行/导入文件:

dotnet SonarScanner begin /k:"my-project" /d:sonar.cs.vscoveragexml.reportsPaths=".\TestResults\*.xml"
dotnet build
dotnet SonarScanner end

根据日志,文件被找到但未被摄取。

INFO:解析 Visual Studio 覆盖率 XML 报告 C:...\TestResults\5.coverage.cobertura.xml 警告:无法导入 覆盖率报告'..\TestResults\5.coverage.cobertura.xml' 因为 '缺少根元素 C:...\TestResults\5.coverage.cobertura.xml 在第 2 行'

我已确认文件包含看起来正确的有效 XML,但我什至不确定 SonarQube 是否应该接受 cobertura 报告。

  • 在尝试将 xUnit 覆盖率报告导入 SonarQube 时,我的方法是否与其他人一样?
  • 有没有更好的方法?如果这样更简单,我很乐意使用 OpenCover 或类似工具。

【问题讨论】:

    标签: .net-core sonarqube code-coverage


    【解决方案1】:

    如果将来有人遇到这种情况,我放弃了尝试使用 VS 中的内置覆盖并使用 DotCover。设置更简单一些,现在似乎可以在一定程度上发挥作用。

    • 下载/提取 dotCover 并将文件夹添加到 Path
    • dotCover.exe --output=AppCoverageReport.html --reportType=HTML dotnet -- 测试
    • dotnet SonarScanner 开始 /k:"my-project" /d:sonar.cs.dotcover.reportsPaths=AppCoverageReport.html
    • dotnet 构建
    • dotnet SonarScanner 结束

    仍然存在测试覆盖率收集似乎过多并因此导致错误的问题。正在调查但与此问题无关。

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 2021-07-09
      • 2022-07-01
      • 2018-10-18
      • 2019-05-15
      • 2019-10-01
      • 2015-03-13
      • 2014-05-04
      相关资源
      最近更新 更多