繁体   English   中英

如何从 pytest-cov 获取每个子包的聚合覆盖率?

[英]How to obtain aggregated coverage per subpackage from pytest-cov?

我在大型代码库上将 pytest 与pytest-cov插件结合使用。 总的来说,我知道各种 output 报告生成器和 html output 在分析单个文件的覆盖率信息时提供了很大的价值,即在查看单个文件时,尤其是它们的行覆盖率时。

我还知道 pytest 报告的“总”覆盖率,这当然是在整个项目中汇总的。

当我还没有弄清楚如何在总计和文件级别之间获取覆盖信息时。 假设顶级 package 名称是foo ,它包含数千个文件,这些文件被结构化为各种(有时是深度嵌套的)子包。 在开发某个子包时说foo.bar.baz (它本身可能有大约数百个文件),如果我能获得专门针对foo.bar.baz的覆盖范围,那将非常有用。 不幸的是,“文件级别”报告在这种情况下无济于事,因为在精神上汇总foo.bar.baz中的所有文件几乎是不可能的。

有没有一种简单的方法来获得每个子包的覆盖范围?

您可以获取 JSON 形式的数据(使用coverage json ),然后自己进行后处理。 coverage.py 没有办法做到这一点。

这样做的一个例子是goals.py ,它提供了对文件子集的限制和检查。 也许它可以帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM