我正在 Azure Devops 上开发测试管道。
我遇到错误,但我不知道如何修复它。
错误是
"The report file pattern '/home/vsts/work/1/s/**/coverage.cobertura.xml' found no matching files."
这是我的 yaml 文件:
pool:
name: Azure Pipelines
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk 8.x'
inputs:
version: 8.x
- task: DotNetCoreCLI@2
displayName: 'dotnet restore'
inputs:
command: restore
- task: DotNetCoreCLI@2
displayName: 'dotnet build'
- task: DotNetCoreCLI@2
displayName: 'dotnet test'
inputs:
command: test
arguments: '--collect:"XPlat Code Coverage"'
- task: DotNetCoreCLI@2
displayName: 'Install ReportGenerator'
inputs:
command: custom
custom: tool
arguments: 'install --global dotnet-reportgenerator-globaltool'
- task: Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@5
displayName: ReportGenerator
inputs:
reports: '$(System.DefaultWorkingDirectory)/**/coverage.cobertura.xml' #Here is incorrect.
targetdir: '$(Build.DefaultWorkingDirectory)/CodeCoverage'
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage results'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/Cobertura.xml'
我不确定这里发生了什么。有人有什么想法吗?
“报告文件模式 '/home/vsts/work/1/s/**/coverage.cobertura.xml' 未找到匹配的文件。”
问题的原因是,coverage.cobertura.xml 文件将在文件夹中创建:
$(Agent.TempDirectory)
,而不是$(System.DefaultWorkingDirectory)
要解决这个问题,可以设置路径:
$(Agent.TempDirectory)/**/coverage.cobertura.xml
例如:
- task: Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@5
displayName: ReportGenerator
inputs:
reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: '$(Build.DefaultWorkingDirectory)/CodeCoverage'
更详细的信息,可以参考我的另一个答案:直接在Azure Pipelines中可视化.net核心代码覆盖率