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>),因此导致导入失败。
修复步骤
替换测试报告配置项
将sonar.cs.nunit.reportsPaths替换为sonar.cs.vstest.reportsPaths,这是SonarCloud专门用于识别VSTest TRX报告的属性。修改后的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
相关产品推荐
相关产品推荐

