設定

這個外掛程式提供了少數精簡的命令列選項,用以新增到 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.cfgpytesttool: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.inisetup.cfg 中查詢涵蓋範圍設定」。

在實務上,這表示如果您有幾個設定檔(tox.inipyproject.tomlsetup.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

選擇設定動態內容的方法。