我试图在我的Azure DevOps Pipeline中在线发布一份详细报告,但最终只得到了一个下载此覆盖率文件的链接 (由于Visual Studio 2019的社区版已无法读取该文件)。
这是我的Pipeline:
![enter image description here](https://istack.dev59.com/Aq5t7.webp)
trigger:
branches:
include:
- '*'
pool:
vmImage: 'windows-2019'
steps:
- task: NuGetToolInstaller@0
displayName: Instal Nuget
inputs:
checkLatest: true
- task: NuGetCommand@2
displayName: Restore Nuget Packages
inputs:
restoreSolution: '**/*.sln'
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 3.1.x
performMultiLevelLookup: true
- task: DotNetCoreCLI@2
displayName: Build Tests
inputs:
command: 'build'
projects: '**/OneTienditaUnitTests/*.csproj'
arguments: '--configuration Release'
- script: dotnet test OneTienditaUnitTests --logger trx --collect "Code coverage"
- task: PublishTestResults@2
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
- task: XamarinAndroid@1
displayName: Build Android App
inputs:
projectFile: '**/*Android*.csproj'
outputDirectory: '$(build.binariesDirectory)/Release'
configuration: 'Release'
如果我像这样使用Cobertura,就不起作用:
- task: DotNetCoreCLI@2
displayName: Run Tests
inputs:
command: 'test'
projects: '**/OneTienditaUnitTests/*.csproj'
arguments: '--configuration Release /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=../reports/coverage/'
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage results'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(build.sourcesdirectory)\reports\coverage\coverage.cobertura.xml'
reportDirectory: '$(build.sourcesdirectory)\reports\coverage'
请帮忙吗?我不是专业的DevOps。
coverage.covertura.xml
文件的默认工具。您只需要更新PublicCodeCoverageResults
任务的summaryFileLocation
以指向临时目录,就像您已经使用脚本任务传递ReportGenerator路径一样即可。 - Thiago Silva找到了多个文件或目录匹配项。使用第一个匹配项:C:\agent\_work\38\s\artifacts\test-results\$redacted\In\redacted\coverage.cobertura.xml
##[error]未找到要发布的代码覆盖率结果。
我不知道发生了什么。当我在本地运行dotnet test
时,我可以看到所有的coverage.cobertura.xml
文件都按预期生成。我甚至可以在我的管道的dotnet test
输出中看到它们。 - NathanAldenSr$(Agent.TempDirectory)
,因为我正在运行有状态的本地构建代理(这不是我的选择)。 - NathanAldenSr