概觀¶
此外掛程式會產生覆蓋率報告。與僅使用 coverage run
相比,此外掛程式多了以下功能:
子程序支援:您可以在子程序分岔或執行程式碼,而且會在不產生任何錯誤的情況下受到涵蓋。
Xdist 支援:您可以使用 pytest-xdist 的所有功能,而且仍然可以獲得涵蓋率。
一致的 pytest 行為。如果您執行
coverage run -m pytest
,您會有稍微不同的sys.path
(CWD 會在其中,這與執行pytest
時不同)。
涵蓋率套件中提供的所有功能都應該適用,可以透過 pytest-cov 的命令列選項或透過涵蓋率的組態檔。
免費軟體:MIT 授權
安裝¶
使用 pip 安裝
pip install pytest-cov
針對分散式測試支援,請安裝 pytest-xdist
pip install pytest-xdist
從舊版 pytest-cov 升級¶
pytest-cov 2.0 正在使用新的 .pth
檔案 (pytest-cov.pth
)。您可能需要手動從 site-packages 移除較舊的 init_cov_core.pth
,因為它不會自動移除。
解除安裝¶
使用 pip 解除安裝
pip uninstall pytest-cov
在特定情況下,系統可能會留下一個 .pth
檔案於 site-packages。
pytest-cov 2.0 可能會留下一個
pytest-cov.pth
,如果您沒有使用輪子 (easy_install
、setup.py install
等) 安裝。pytest-cov 1.8 或更舊 會留下一個
init_cov_core.pth
。
用法¶
pytest --cov=myproj tests/
會產生類似下列報告
-------------------- coverage: ... ---------------------
Name Stmts Miss Cover
----------------------------------------
myproj/__init__ 2 0 100%
myproj/myproj 257 13 94%
myproj/feature4286 94 7 92%
----------------------------------------
TOTAL 353 20 94%
文件¶
涵蓋率資料檔案¶
資料檔案會在測試開始時被刪除,以確保每個測試運作的資料都是乾淨的。如果您需要組合多個測試運作的涵蓋率,您可以使用 --cov-append
選項,以將此涵蓋率資料附加到來自先前測試運作的涵蓋率資料。
資料檔案會留在測試結束時,以便使用一般的涵蓋率工具來檢閱。
限制¶
針對分散式測試,工作人員必須已安裝 pytest-cov 套件。這是因為外掛程式必須透過 setuptools 註冊,才能讓 pytest 於工作人員上啟動外掛程式。
對於子處理程序測量環境變數,必須從主處理程序轉移到子處理程序。子處理程序所使用的 Python 必須已安裝 pytest-cov。子處理程序必須執行正常的網站初始化,以便能偵測環境變數以及啟動涵蓋範圍。請參閱子處理程序支援文件,了解詳細運作方式。
安全性¶
要回報安全漏洞,請使用Tidelift 安全聯絡方式。Tidelift 將協調修復和公開。
致謝¶
雖然這個外掛程式從頭開始建立,但仍受到其他涵蓋範圍外掛程式(PyTest-coverage [Ross Lawley、James Mills、Holger Krekel] 和 nose-cover [Jason Pellerin])的影響。
Ned Batchelder 提供涵蓋範圍及其結合平行執行涵蓋範圍結果的能力。
Holger Krekel 提供支援分散式測試的 PyTest。
Jason Pellerin 提供 Nose。
Michael Foord 提供 UnitTest2。
無疑地,其他人士也對這些工具有所貢獻。