【问题标题】:SonarCloud Could not import unit test report TRX Unrecognized root element <TestRun>SonarCloud 无法导入单元测试报告 TRX Unrecognized root element <TestRun>
【发布时间】:2022-08-05 21:52:08
【问题描述】:

我是测试新手,我正在尝试在 Azure Pipelines 中为 .NET 运行我的单元测试和覆盖率,并将其发送到 SonarCloud。 当我使用 VSTest 运行单元测试时,我得到了 TRX 文件和 .coverage 文件。我正在使用 ReportGenerator 将 .coverage 文件转换为 XML 并将 TRX 和覆盖 XML 文件导入 SonarCloud,但在导入 TRX 文件时我在日志中收到错误消息。

这是我设置测试的管道的一部分:

  - 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.nunit.reportsPaths=$(Agent.BuildDirectory)\\git\\testsResult\\unitTest\\testResults.trx

  - task: VisualStudioTestPlatformInstaller@1
    inputs:
      packageFeedSelector: \'nugetOrg\'
      versionSelector: \'latestStable\'

  - task: VSTest@2
    displayName: Unit Tests
    inputs:
      testSelector: \'testAssemblies\'
      testAssemblyVer2: \'*(*.Test)*(*.Integration).dll\'
      searchFolder: \'$(Agent.BuildDirectory)\\git\\test-bin\'
      resultsFolder: \'$(Agent.BuildDirectory)\\git\\testsResult\\unitTest\'
      vsTestVersion: \'toolsInstaller\'
      testFiltercriteria: \'TestCategory!=Integration\'
      codeCoverageEnabled: true
      otherConsoleOptions: \'/Logger:\"trx;LogFileName=testResults.trx\" /EnableCodeCoverage -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.CoverageFileName=\"my.coverage\"\'

  - task: PowerShell@2
    displayName: Search for coverage file
    inputs:
      targetType: \'inline\'
      script: \'Get-ChildItem -Path \"$(Agent.BuildDirectory)\\git\\testsResult\\unitTest\\*\" -Include *.coverage -Recurse | Copy-Item -Destination $(Agent.BuildDirectory)\\git\\testsResult\\unitTest\'

  - task: PowerShell@2
    displayName: Transform coverage file into xml
    inputs:
      targetType: \'inline\'
      script: \'C:\\Users\\tfs_build_agent\\.nuget\\packages\\microsoft.codecoverage\\17.2.0\\build\\netstandard1.0\\CodeCoverage\\CodeCoverage.exe analyze /output:$(Agent.BuildDirectory)\\git\\testsResult\\unitTest\\DynamicCodeCoverage.coveragexml $(Agent.BuildDirectory)\\git\\testsResult\\unitTest\\my.coverage\'
      
  - task: DotNetCoreCLI@2
    displayName: Install Report Generator
    inputs:
      command: \'custom\'
      custom: \'tool\'
      arguments: \'install dotnet-reportgenerator-globaltool --version 4.8.13\'

  - task: DotNetCoreCLI@2
    displayName: Run Report Generator
    inputs:
      command: \'custom\'
      custom: \'reportgenerator\'
      arguments: \'-reports:$(Agent.BuildDirectory)\\git\\testsResult\\unitTest\\DynamicCodeCoverage.coveragexml -targetdir:$(Agent.BuildDirectory)\\git\\testsResult\\unitTest -reporttypes:SonarQube\'

   - task: SonarCloudAnalyze@1

我收到的错误:

Could not import unit test report \'C:\\agent\\_work\\162\\git\\testsResult\\unitTest\\testResults.trx\': Unrecognized root element <TestRun> in C:\\agent\\_work\\162\\git\\testsResult\\unitTest\\testResults.trx at line 2

我不确定我在这里做错了什么!

    标签: c# .net testing sonarqube sonarcloud


    【解决方案1】:

    结果我不得不将extraPropertiessonar.cs.nunit.reportsPaths 更改为sonar.cs.vstest.reportsPaths

    【讨论】:

      猜你喜欢
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      相关资源
      最近更新 更多