Azure DevOps 使用 JaCoCo 配置代码覆盖率

Azure DevOps configure code coverage with JaCoCo

我想查看 Azure DevOps 中的代码覆盖率。

所以我这样配置 azure-pipelines.yml

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site" /p:CollectCoverage=true /p:CoverletOutputFormat=jacoco /p:CoverletOutput=$(Build.DefaultWorkingDirectory)/TestResults/Coverage/'''
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    maximumCpuCount: true

- task: VSTest@2
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\*test.dll
      !**\*TestAdapter.dll
      !**\obj\**
    searchFolder: '$(System.DefaultWorkingDirectory)'
    codeCoverageEnabled: true
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: 'JaCoCo'
    summaryFileLocation: '$(System.DefaultWorkingDirectory)/TestResults/Coverage/*.xml'

并且 nuget 包 coverlet.collector 是由 Azure DevOps 签入添加的。 我还在步骤 VSBuild.

中添加了部分 /p:CollectCoverage=true /p:CoverletOutputFormat=jacoco /p:CoverletOutput=$(Build.DefaultWorkingDirectory)/TestResults/Coverage/

但是,当我单击最后一个 运行 管道时,它只显示一个带有 link 的按钮 Download code coverage results.coverage 文件。

我决定 JaCoCo 而不是 Cobertura 没有具体原因,所以如有必要可以更改。

如何查看代码覆盖率?

Azure DevOps configure code coverage with JaCoCo

这是 Azure devops 上的 known issue。现在,我们只能下载报告,然后用Visual Studio打开它。

Azure devops 目前仅支持下载link.coverage 文件。您看到的白页是 UI 故障。此场景仅应将下载 link 呈现到覆盖文件。

此外,此问题已在此处提交的早期建议票中提交 link:

support vstest .coverage "code coverage" build results tab

此功能请求在路线图上,相信很快就会发布,您可以关注此主题以了解其最新反馈。

希望这对您有所帮助。