具有线路覆盖率和最小限制的 Pytest 覆盖率,如业力/伊斯坦布尔
Posted
技术标签:
【中文标题】具有线路覆盖率和最小限制的 Pytest 覆盖率,如业力/伊斯坦布尔【英文标题】:Pytest coverage with line coverage and minimum limits like karma/Istanbul 【发布时间】:2019-05-13 10:08:36 【问题描述】:-
在 Karma 的 Instanbul 覆盖模块中,您可以为不同类型的覆盖设置阈值。如果某些覆盖率未达到其最小值,则 instanbul 会引发错误。这在使用 jenkins 构建项目时非常有用,您必须保持这样的限制。是否可以使用 pytest-cov 或任何其他模块获得类似的功能?
https://ibb.co/y4J3JrG
-
pytest-cov 仅生成语句覆盖率。是否也可以获得行/代码覆盖率?
【问题讨论】:
【参考方案1】:Coverage.py(它是 pytest-cov 的引擎)具有总覆盖率的阈值,但没有针对不同测量的单独阈值。查看--fail-under
选项。
Coverage.py 可以测量语句覆盖率和分支覆盖率。您提到“行”覆盖率和“代码”覆盖率:我不知道它们与语句覆盖率有何不同。
【讨论】:
感谢您的回复。好吧,我发现语句覆盖率与行不同,因为有许多带有 EOL 标记的语言在 f.ex 行中可以有多个语句。 x = 4 ; y = x + 10;。但是 python offcourse 不能这样做,所以我们可以假设 statements = lines。但是仍然不知道如何显示分支机构覆盖率的百分比。我只在 TOTAL 分支中看到了数字,但它们涵盖了多少?我不知道。【参考方案2】:您可以通过以下方式找到您需要的选项:
pytest --help
--cov-fail-under=MIN 如果总覆盖率小于 MIN 则失败。
【讨论】:
以上是关于具有线路覆盖率和最小限制的 Pytest 覆盖率,如业力/伊斯坦布尔的主要内容,如果未能解决你的问题,请参考以下文章