从ReportGenerator发布代码覆盖率结果不起作用

时间:2019-07-02 19:57:13

标签: azure azure-devops azure-pipelines

我无法使代码覆盖率报告正常工作,或者无法使DevOps正确传递参数。如果我下载了构建目录(在构建中已压缩),则可以使用ReportGenerator报告,但不会发布它们。所以我知道那部分至少在工作。 :)

但是,当运行发布步骤时,它会创建新报告并使用这些报告。我的Yaml文件如下:

## Generate Reports
- task: Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@4
  displayName: Generate Code Coverage Reports
  inputs:
    reports: '**\coverage.cobertura.xml'
    targetdir: 'results'
    reporttypes: 'HTML;HtmlInline_AzurePipelines;Badges;Cobertura'
    assemblyfilters: '-*tests*'
    continueOnError: true


# Publish Code Coverage Reports
- task: PublishCodeCoverageResults@1
  displayName: Publish Code Coverage Results
  inputs:
    disable.coverage.autogenerate: true
    summaryFileLocation: $(Build.SourcesDirectory)\results\cobertura.xml
    reportDirectory: $(Build.SourcesDirectory)\results
    codecoverageTool: cobertura
    continueOnError: true

但是,当我在Debug中运行时,会得到以下输出:

##[debug]disable.coverage.autogenerate=undefined

我尝试了以下选项来传递此参数:

disable.coverage.autogenerate: true
disable.coverage.autogenerate: 'true'
disable.coverage.autogenerate: 1

他们都没有成功地将任何东西传递给任务。

在未设置此标志的情况下,任务将覆盖ReportGenerator生成的HTML报告并输出以下内容:

##[warning]Ignoring coverage report directory with Html content as we are auto-generating Html content

我正在根据Daniel Palme(ReportGenerator的作者)here粘贴的信息进行工作,并阅读任务here的实际代码。

我的源代码是开源的,因此,如果日志或更多信息可帮助您提供答案,则全部为available here。日志良好的构建为here。 Yaml文件为here,可以从项目中的其他各个存储库中调用。

对于如何解决此问题的任何建议,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

在标准操作过程中,会生气,在StackOverflow上写一篇长文章,在某个地方找到一个金块,然后解决自己的问题。

这不是参数,而是需要设置的环境变量。将以下内容添加到Yaml文件的开头即可解决此问题。

  search: {
    textAlign: "center",
    display: "inline-block"
  },
  wrapper: {
    textAlign: "center",
  }

将其保留在此处,以节省下一个在此问题排查中陷入困境的下一个人。 :/