Unit testing 在azuredevops管道中发布代码覆盖率结果失败

Unit testing 在azuredevops管道中发布代码覆盖率结果失败,unit-testing,azure-devops,azure-pipelines,Unit Testing,Azure Devops,Azure Pipelines,我的管道中有一个.netcode测试命令和一个发布代码覆盖率结果任务 配置如下: steps: - task: DotNetCoreCLI@2 displayName: 'Test Public API Project ' inputs: command: test projects: '**/DWP.CDA.API.Test.csproj' arguments: '--output publish_output --configuration $(BuildCo

我的管道中有一个.netcode测试命令和一个发布代码覆盖率结果任务

配置如下:

steps:
- task: DotNetCoreCLI@2
  displayName: 'Test Public API Project '
  inputs:
    command: test
    projects: '**/DWP.CDA.API.Test.csproj'
    arguments: '--output publish_output --configuration $(BuildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:Threshold=99 /p:ThresholdStat=total /p:CoverletOutput=$(Build.SourcesDirectory)\TestResults\Coverage\ --collect "Code coverage"'

steps:
- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage'
  inputs:
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(Build.SourcesDirectory)/TestResults/Coverage/*cobertura.xml'
    reportDirectory: '($(Build.SourcesDirectory)/Src/TestResults/Coverage'
但发布结果似乎没有生效,这样的消息就会显示出来

[warning]No code coverage results were found to publish.

您是否也安装并运行了ReportGenerator工具以获得正确格式的代码覆盖率报告?您的警告看起来好像生成任务没有在您正在查找的文件夹中找到要发布的xml文件

我过去使用过以下yaml来运行和发布代码覆盖率结果。你需要改变它来找到你的项目,否则它应该会工作

- task: DotNetCoreCLI@2
  displayName: 'Install ReportGenerator'
  inputs:
    command: custom
    custom: tool
    arguments: 'install --global dotnet-reportgenerator-globaltool'

- task: DotNetCoreCLI@2
  displayName: 'Run unit tests - $(buildConfiguration)'
  inputs:
    command: 'test'
    arguments: '--no-build --configuration $(buildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)/TestResults/Coverage/'
    publishTestResults: true
    projects: '**/*.Tests.csproj'

- script: |
    reportgenerator -reports:$(Build.SourcesDirectory)/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/CodeCoverage -reporttypes:HtmlInline_AzurePipelines
  displayName: 'Create code coverage report'

- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage report'
  inputs:
    codeCoverageTool: 'cobertura'
    summaryFileLocation: '$(Build.SourcesDirectory)/**/coverage.cobertura.xml'

我正在尝试使用您列出的脚本创建报告,但失败。错误如下:2020-02-19T04:16:13:工作目录:D:\a\1\s 2020-02-19T04:16:13:报告文件“D:\a\1\s/TestResults/Coverage/Coverage.cobertura.xml”无效。文件不存在(完整路径:“D:\a\1\s\TestResults\Coverage\cobertura.xml”)。2020-02-19T04:16:13:未指定报告文件。我认为您可以设置
system.debug=true
,以获取有关此错误的更详细日志,并在此处共享。这有助于其他人进一步调查。好几天没有收到您的回复,请您分享有关此问题的最新信息好吗?如果您有任何问题,请随时在此处分享。很抱歉稍后回复,因为我还有其他紧急工作要做。我已挂起此问题,并在管道中禁用此步骤。我将稍后尝试解决此问题,并在此处分享进展。