我无法使代码覆盖率报告正常工作,或者无法使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,可以从项目中的其他各个存储库中调用。
对于如何解决此问题的任何建议,我们将不胜感激。
答案 0 :(得分:1)
在标准操作过程中,会生气,在StackOverflow上写一篇长文章,在某个地方找到一个金块,然后解决自己的问题。
这不是参数,而是需要设置的环境变量。将以下内容添加到Yaml文件的开头即可解决此问题。
search: {
textAlign: "center",
display: "inline-block"
},
wrapper: {
textAlign: "center",
}
将其保留在此处,以节省下一个在此问题排查中陷入困境的下一个人。 :/