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