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

Azure Pipelines中SonarCloud导入TRX测试报告失败求助

问题解决:SonarCloud导入TRX测试报告报错"Unrecognized root element "

核心错误原因

你在SonarCloudPrepare任务的extraProperties里错误使用了NUnit测试报告的配置项来指定VSTest生成的TRX文件:

sonar.cs.nunit.reportsPaths=$(Agent.BuildDirectory)\git\testsResult\unitTest\testResults.trx

TRX是VSTest的原生报告格式,根元素为<TestRun>,而SonarCloud的nunit配置项仅识别NUnit格式的报告(根元素并非<TestRun>),因此导致导入失败。

修复步骤

  1. 替换测试报告配置项
    将sonar.cs.nunit.reportsPaths替换为sonar.cs.vstest.reportsPaths,这是SonarCloud专门用于识别VSTest TRX报告的属性。

  2. 修改后的SonarCloudPrepare任务代码

- task: SonarCloudPrepare@1
  inputs:
    SonarCloud: 'SonarCloud'
    organization: 'org'
    scannerMode: 'MSBuild'
    projectKey: 'org_git_dotnet'
    projectName: 'org_git / git / dotnet'
    projectVersion: '$(MajMinPat.Version)'
    extraProperties: |
      sonar.coverageReportPaths=$(Agent.BuildDirectory)\git\testsResult\unitTest\SonarQube.xml
      sonar.cs.vstest.reportsPaths=$(Agent.BuildDirectory)\git\testsResult\unitTest\testResults.trx

额外检查项

  • 确认TRX文件路径正确:$(Agent.BuildDirectory)\git\testsResult\unitTest\testResults.trx确实存在,VSTest任务已正常生成该文件。
  • 覆盖率转换部分:你用ReportGenerator生成的SonarQube.xml路径配置正确,这部分无需修改。
  • 任务顺序:确保VSTest和报告转换任务都在SonarCloudAnalyze之前执行,当前Pipeline的顺序是正确的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:06:36