設定¶
這個外掛程式提供了少數精簡的命令列選項,用以新增到 pytest。若要進一步控制涵蓋範圍,請使用涵蓋範圍設定檔。
例如,如果測試包含在正在測量中的目錄樹內,則可透過使用設定了略過選項的 .coveragerc 檔,依需求排除測試
pytest --cov-config=.coveragerc
--cov=myproj
myproj/tests/
其中 .coveragerc 檔包含檔案 glob
[run]
omit = tests/*
深入詳情,請參閱 涵蓋範圍設定檔 說明文件。
注意事項
重要注意事項
這個外掛程式會覆寫涵蓋範圍的 parallel
選項。除非您也在沒有 pytest-cov 的情況下執行涵蓋範圍,否則在 .coveragerc
中設定這些選項是毫無意義的。
如果您使用 --cov=something
選項(帶有值),則涵蓋範圍的 source
選項也會被覆寫。如果您有多個來源,則可在 .coveragerc
中設定這些選項會比較容易,並永遠使用 --cov
(不帶值),而不是使用一個長命令列,其中包括 --cov=pkg1 --cov=pkg2 --cov=pkg3 ...
。
如果您使用 --cov-branch
選項,則涵蓋範圍的 branch
選項也會被覆寫。
如果您想要永遠透過 pytest 加入 pytest-cov,則可以在 setup.cfg
的 pytest
或 tool:pytest
區段,或是 pyproject.toml
檔案的 tool.pytest.ini_options
區段中使用 addopts
。
例如,在 setup.cfg
中
[tool:pytest]
addopts = --cov=<project-name> --cov-report html
或是對於 pyproject.toml
[tool.pytest.ini_options]
addopts = "--cov=<project-name> --cov-report html"
警語 ¶
coverage.py 歷史上一個不幸的後果是,.coveragerc
是一個神奇的名稱:它是預設檔,但它也表示「嘗試也在 tox.ini
或 setup.cfg
中查詢涵蓋範圍設定」。
在實務上,這表示如果您有幾個設定檔(tox.ini
、pyproject.toml
或 setup.cfg
),則您可能需要使用 --cov-config
,讓涵蓋範圍使用正確的設定檔。
此外,如果在測試中變更工作目錄,並使用子程序,您可能也需要使用 --cov-config
來讓 pytest-cov 在子程序中使用預期設定檔。
參考¶
指令列選項清單如下
- --cov=路徑
測量檔案系統路徑的覆蓋率。(多選)
- --cov-report=類型
產生報表的類型:術語、遺失的術語、註解、html、xml、json、lcov(多選)。術語、遺失的術語後面可能會接著「:跳過已覆蓋」。註解、html、xml、json 和 lcov 後面可能會接著「:目的位置」,其中目的位置指定輸出位置。使用 –cov-report= 來不產生任何輸出。
- --cov-config=路徑
覆蓋率設定檔。預設值:.coveragerc
- --no-cov-on-fail
如果測試執行失敗,不要回報覆蓋率。預設值:False
- --no-cov
完全停用覆蓋率報告(對除錯程式很有用)。預設值:False
- --cov-reset
重設累積在選項中的 cov 來源。主要對腳本和設定檔有幫助。
- --cov-fail-under=最低值
如果總覆蓋率低於最低值,就會失敗。
- --cov-append
不要刪除覆蓋率,而是新增到目前的覆蓋率。預設值:False
- --cov-branch
啟用分支覆蓋率。
- --cov-context
選擇設定動態內容的方法。