You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codecoverage.exe是否被Sonar系列弃用?.NET Framework覆盖率上报替代方案

问题解答:Codecoverage.exe在SonarCloud的支持状态及替代方案

一、Codecoverage.exe的支持状态

SonarCloud(以及SonarQube)已经不再推荐直接使用codecoverage.exe生成的原生.coverage文件,官方对这种格式的解析支持已弱化,新版Sonar分析器甚至可能无法正确识别,这就是你的覆盖率结果无法在面板显示的核心原因。

二、替代方案(针对.NET Framework应用)

方案1:使用Coverlet生成OpenCover格式报告(推荐)

Coverlet是.NET生态主流的覆盖率工具,生成的OpenCover格式报告可被SonarCloud完美解析:

  • 在测试项目中安装Coverlet MSBuild包
    Install-Package coverlet.msbuild -Version [适配项目的版本号]
    
  • 在YAML流水线的VSTest任务中添加参数生成报告
    - task: VSTest@2
      inputs:
        testAssemblyVer2: '**\*Tests.dll'
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'
        arguments: '/p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=$(Build.SourcesDirectory)/TestResults/coverage.'
    
  • 在SonarCloud的Prepare任务中指定报告路径
    - task: SonarCloudPrepare@1
      inputs:
        SonarCloud: '你的SonarCloud连接名'
        organization: '你的组织名'
        projectKey: '你的项目Key'
        projectName: '你的项目名'
        extraProperties: |
          sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/TestResults/coverage.opencover.xml
    

方案2:将.coverage文件转换为Cobertura格式

若想保留codecoverage.exe生成.coverage文件的流程,可通过reportgenerator工具转换为SonarCloud支持的Cobertura格式:

  • 安装reportgenerator全局工具
    - script: dotnet tool install --global dotnet-reportgenerator-globaltool
      displayName: '安装ReportGenerator工具'
    
  • 转换报告格式
    - script: reportgenerator -reports:$(Build.SourcesDirectory)/TestResults/*.coverage -targetdir:$(Build.SourcesDirectory)/TestResults/Cobertura -reporttypes:Cobertura
      displayName: '转换覆盖率报告格式'
    
  • 在SonarCloud配置中指定Cobertura报告路径
    - task: SonarCloudPrepare@1
      inputs:
        # 其他基础配置项...
        extraProperties: |
          sonar.cs.cobertura.reportsPaths=$(Build.SourcesDirectory)/TestResults/Cobertura/Cobertura.xml
    

常见排查要点

  • 确保SonarCloud的Prepare任务在测试任务之后执行,保证报告已生成
  • 查看SonarCloud任务的流水线日志,排查是否存在“找不到报告”或“解析失败”的警告
  • 确认报告路径与Sonar配置中的路径完全匹配,注意大小写和通配符的正确使用

内容的提问来源于stack exchange,提问作者sudalai muthukumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:35:16