Azure DevOps流水线配置SonarCloud代码覆盖率分析失败及仅扫描测试项目问题求助
Azure DevOps流水线配置SonarCloud代码覆盖率分析失败及仅扫描测试项目问题求助
各位好,我目前正在为我的.NET微服务搭建Azure DevOps流水线,在集成SonarCloud做代码质量分析时遇到了两个棘手的问题,翻了SonarCloud的官方文档也没找到解决办法,想在这里求助大家:
问题1:代码覆盖率报告无法同步到SonarCloud
- 背景:我原本用Cobertura生成的覆盖率报告在Azure DevOps里能正常展示,但发现SonarCloud不支持直接关联Cobertura格式,所以改成同时生成Cobertura和OpenCover两种格式的报告。
- 现状:从流水线日志里能看到两个格式的报告都成功生成了(日志内容见下文),但SonarCloud始终没有读取到OpenCover的覆盖率数据。
问题2:SonarCloud仅分析测试项目,主业务代码未被扫描
- 现状:运行SonarCloud分析后,发现它只扫描了我的测试项目,实际的主业务代码完全没被纳入分析范围,这完全达不到我做代码质量检查的目的。
我的Azure DevOps流水线配置(YAML)
trigger: - dev - main pool: vmImage: ubuntu-latest jobs: - job: check_code_quality steps: - task: SonarCloudPrepare@1 displayName: 'Setup Sonar Cloud' inputs: SonarCloud: 'SonarCloud' organization: '***' scannerMode: 'MSBuild' projectKey: '***' projectName: '****' extraProperties: | sonar.exclusions=**/obj/**,**/*.dll sonar.cs.vstest.reportsPaths=$(Agent.TempDirectory)/*.trx sonar.cs.opencover.reportsPaths=$(Agent.TempDirectory)/**/coverage.opencover.xml - task: DotNetCoreCLI@2 displayName: 'Build main code' inputs: command: build projects: '**/*.csproj' arguments: '--configuration Release' - task: DotNetCoreCLI@2 displayName: 'Run unit tests' continueOnError: true inputs: command: 'test' projects: '**/*[Tt]est*/*.csproj' testRunTitle: 'Backend Unit Testing' arguments: '--configuration Release --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura,opencover' publishTestResults: true - task: PublishCodeCoverageResults@1 displayName: 'Publish code coverage report' inputs: codeCoverageTool: 'Cobertura' summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml' - task: SonarCloudAnalyze@1 displayName: 'Run Sonar Analysis' - task: SonarCloudPublish@1 displayName: 'Publish Sonar Results' inputs: pollingTimeoutSec: '300'
流水线日志中显示的覆盖率文件信息
Attachments:
/home/vsts/work/_temp/111bef07-6e19-43fe-a689-7597bc24dda3/coverage.cobertura.xml
/home/vsts/work/_temp/111bef07-6e19-43fe-a689-7597bc24dda3/coverage.opencover.xml
已经折腾好一阵了,实在找不到问题出在哪,麻烦各位帮忙看看配置哪里有问题,或者有没有其他办法解决这两个问题?谢谢大家!
备注:内容来源于stack exchange,提问作者Jbtf
相关产品推荐
相关产品推荐

