Azure DevOps 使用 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/

但是,当我单击最后一个运行管道时,它只显示一个按钮Download code coverage results,其中包含指向.coverage文件的链接。

我无缘无故地决定JaCoCo而不是Cobertura,因此如有必要可以进行更改。

如何查看代码覆盖率?

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

这是 Azure DevOps 上的已知问题。现在,我们只能下载报表,然后用Visual Studio打开它。

Azure DevOps 目前仅支持 .coverage 文件的下载链接。您看到的白页是 UI 故障。此方案只应呈现指向覆盖文件的下载链接。

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

支持 vstest .coverage "代码覆盖率" 构建结果选项卡

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

希望这有帮助。

最新更新