Feb*_*lon 4 pipeline code-coverage cobertura azure-devops azure-pipelines
我正在尝试在我的 Azure DevOps Pipeline 中在线发布详细报告,但我得到的只是一个下载此 Coverage 文件的链接。(自 Visual Studio 2019 以来,社区版本无法再读取该内容)
这是我的管道:
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'
Run Code Online (Sandbox Code Playgroud)
如果我像这样使用 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'
Run Code Online (Sandbox Code Playgroud)
请任何帮助?我不是专业的 DevOps
Krz*_*tof 10
要发布报告,您需要使用 Cobertura。对于 TRX,您只会获得下载文件的链接。要创建 Cobertura 报告,您需要在您的测试项目coverlet.collector
nuget 包中安装。在这里,您有代码可以解决您的问题:
# You just added coverlet.collector to use 'XPlat Code Coverage'
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage" -- RunConfiguration.DisableAppDomain=true'
workingDirectory: $(Build.SourcesDirectory)
- task: DotNetCoreCLI@2
inputs:
command: custom
custom: tool
arguments: install --tool-path . dotnet-reportgenerator-globaltool
displayName: Install ReportGenerator tool
- script: ./reportgenerator -reports:$(Agent.TempDirectory)/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/coverlet/reports -reporttypes:"Cobertura"
displayName: Create reports
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: $(Build.SourcesDirectory)/coverlet/reports/Cobertura.xml
Run Code Online (Sandbox Code Playgroud)
[2021 更新]
您不需要额外的任务来安装/运行自定义 ReportGenerator 工具:它现在是读取coverage.cobertura.xml
文件的默认工具,并包含在dotnet
CLI 中。
不过,默认情况下,它会将 cobertura xml 文件保存到代理上的临时目录中。所以,你只需要更新summaryFileLocation
的的PublishCodeCoverageResults
任务,以点到临时目录并跳过“中间人”的步骤:
# You just added coverlet.collector to use 'XPlat Code Coverage'
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage"'
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2038 次 |
最近记录: |