.net core 和全局阈值中未测试项目的代码覆盖率

Code Coverage for untested projects in .net core and global threshold

我已经设置了一个 Azure DevOps CI 管道来收集通过使用 coverlet 获得的代码覆盖率。 我注意到,如果一个项目以某种方式被项目测试,报告将包含有关未测试的信息 classes/code 但是,例如,如果开发人员添加了一个没有相应测试项目的新项目,则代码不会出现在最终报告中。 此外,似乎只能为每个测试项目指定阈值(例如,我可以有一个由两个不同测试项目测试的项目:两者都有助于原始项目的代码覆盖率统计)。我正在使用 "PublishCodeCoverageResults" 管道任务来发布代码覆盖率结果。如果整体代码覆盖率未达到特定阈值,有没有办法让 CI 构建失败?

代码覆盖率结果是基于测试项目的,因此,代码覆盖率结果不应包括没有对应测试项目的项目。

对于总体代码覆盖阈值,您可以使用此参数:

--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