从C#项目的coverlet上传覆盖信息到SonarCloud

问题描述

我正在尝试收集覆盖信息并将其发布到 SonarCloud 以用于我的 C# 项目,使用 GitHub 操作作为我的 CI 管道。执行很简单,基本上就是尝试对所有项目执行测试,合并所有覆盖文件

run: |
  .\.sonar\scanner\dotnet-sonarscanner begin /k:"LanguageDev_Yoakke" /o:"languagedev" /d:sonar.login="${{ secrets.soNAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.cs.opencover.reportsPaths="CoverageResults/coverage.opencover.xml" /d:"sonar.verbose=true"
  dotnet build
  dotnet test /p:CollectCoverage=true /p:Coverletoutput="../CoverageResults/" /p:MergeWith="../CoverageResults/coverage.json" /p:CoverletoutputFormat=\"opencover,json\" /maxcpucount:1
  .\.sonar\scanner\dotnet-sonarscanner end /d:sonar.login="${{ secrets.soNAR_TOKEN }}"

请注意,我确实需要以 opencoverjson 格式输出coverlet 似乎只能正确合并,因为 json输出格式之一,因此它可以最终将其转换为 opencover

问题是,这不会在 CI 上生成覆盖信息 - 下载工件不显示生成文件夹或文件。但是,如果只是通过 /p:CoverletoutputFormat=opencover,所有覆盖信息都会在 CI 上生成 - 但由于没有 json 输出而无法正确合并。

本地,命令​​

dotnet test /p:CollectCoverage=true /p:Coverletoutput="../CoverageResults/" /p:MergeWith="../CoverageResults/coverage.json" /p:CoverletoutputFormat=\"opencover,json\" /maxcpucount:1

可以正常工作并生成适当的覆盖范围 XML 文件

可能是什么问题,为什么它不适用于为 CI 指定的两种覆盖格式?最初我以为我不知道在 YAML 中转义引号,但这里似乎并非如此。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...