【问题标题】:Code Coverage for untested projects in .net core and global threshold.net 核心和全局阈值中未测试项目的代码覆盖率
【发布时间】:2019-08-01 13:24:05
【问题描述】:
我设置了 Azure DevOps CI 管道来收集使用 Coverlet 获得的代码覆盖率。
我注意到,如果项目以某种方式被项目测试,报告将包含有关未测试的类/代码的信息,但例如,如果开发人员添加了一个没有相应测试项目的新项目,则代码不会显示在最终报告中。
此外,似乎只能为每个测试项目指定阈值(例如,我可以有一个由两个不同测试项目测试的项目:两者都有助于原始项目的代码覆盖率统计)。我正在使用“PublishCodeCoverageResults”管道任务来发布代码覆盖结果。如果整体代码覆盖率没有达到特定阈值,有没有办法让 CI 构建失败?
【问题讨论】:
标签:
.net
.net-core
code-coverage
azure-pipelines
coverlet
【解决方案1】:
代码覆盖结果基于测试项目,因此,代码覆盖结果不应包括没有对应测试项目的项目。
对于整体代码覆盖率阈值,您可以使用此参数:
--configuration $(BuildConfiguration) /p:CollectCoverage=true /p:threshold=75 /p:thresholdType=line /p:thresholdStat=total /p:CoverletOutputFormat=cobertura
另一方面,在拉取请求中有一个关于代码覆盖率指标的新功能:
Code coverage metrics and branch policy for pull requests