Coverage.py 是一個用於檢查測試覆蓋率的套件,他會監控程式碼,紀錄哪些部分有執行過、檢查哪些部分有測試過哪些未有測試。
安裝 coverage
使用 pip:
pip install coverage
使用 poetry:
poetry add -D "coverage[toml]"
可以在 pyproject.toml
中加入下列設定,使其只針對專案本身檢測並設定標準為 100% 覆蓋:
[tool.coverage.run]
omit = [".*", "*/site-packages/*"]
[tool.coverage.report]
fail_under = 100
透過 coverage run
指令執行 coverage:
選項部分帶入 -m
會透過調用 python -m
來執行,因此只需要帶入過去執行測試時的指令作為參數即可使用,例如使用 pytest 可以輸入指令 coverage run -m pytest
透過 coverage report
產出報告:
$ coverage report -m
Name Stmts Miss Cover Missing
-------------------------------------------------------
my_program.py 20 4 80% 33-35, 39
my_other_module.py 56 6 89% 17-23
-------------------------------------------------------
TOTAL 76 10 87%
Note.
-m
選項用於顯示會被覆蓋的程式碼行數
# pragma: no cover