使用.coverage文件发布代码覆盖率?

时间:2019-07-30 05:47:08

标签: azure-devops code-coverage azure-pipelines azure-pipelines-build-task

我有一个带有VSTest任务的Azure构建管道,该管道以'.coverage'格式生成代码覆盖率。我需要将其发布回构建结果页面中的“代码覆盖率”标签。仅下载代码覆盖范围结果可用。如何使用“ .coverage”文件发布代码覆盖率?

enter image description here

我已经尝试过ReportGenerator工具,但是当我将'.coverage'文件作为报告文件传递给该工具时,它会将覆盖率报告作为零覆盖率返回。当我使用Visual Studio打开覆盖率文件时,它会显示覆盖率。

1 个答案:

答案 0 :(得分:0)

我有同样的问题,只是想通了。我从一个简单的Exec任务开始使用MsBuild进行测试,并将日志记录命令嵌入为Message任务。当然,您可以使用PowerShell或其他方法产生相同的输出。

<?xml version="1.0" encoding="utf-8"?>
<Project 
  ToolsVersion="14.0" 
  DefaultTargets="ReportCoverage" 
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  ..

  <Target Name="ReportCoverage">

    ..

    <ItemGroup>
      <CoverageResults Include="$(BinDir)\Reports\*.coverage" />
    </ItemGroup>

    <Message 
      Text="##vso[task.addattachment type=Distributedtask.Core.CodeCoverage;name=CodeCoverage;]$(CoverageResults)" 
      Importance="High" 
      Condition="'%(CoverageResults.Identity)' != ''"/>
  </Target>
</Project>

enter image description here