配置¶
此插件提供了一组简洁的最小命令行选项,这些选项会添加到 pytest 中。若要进一步控制覆盖率,请使用覆盖率配置文件。
例如,如果测试包含在正在测量的目录树中,则可以使用带有设置了 omit 选项的 .coveragerc 文件,根据需要排除测试。
pytest --cov-config=.coveragerc
--cov=myproj
myproj/tests/
其中 .coveragerc 文件包含文件通配符
[run]
omit = tests/*
有关完整详细信息,请参阅 覆盖率配置文件 文档。
注意
重要提示
此插件覆盖了 coverage 的 parallel
选项。除非您还在不使用 pytest-cov 的情况下运行 coverage,否则在 .coveragerc
中设置这些选项毫无意义。
如果您使用 --cov=something
选项(带值),那么 coverage 的 source
选项也将被覆盖。如果您有多个源,则可能更容易在 .coveragerc
中设置它们,并始终使用 --cov
(不带值),而不是使用带有 --cov=pkg1 --cov=pkg2 --cov=pkg3 ...
的长命令行。
如果您使用 --cov-branch
选项,那么 coverage 的 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
使 coverage 使用正确的配置文件。
此外,如果您更改工作目录并在测试中也使用子进程,则可能还需要使用 --cov-config
使 pytest-cov 在子进程中使用预期的配置文件。
参考¶
命令行选项的完整列表如下所示
- --cov=PATH
测量文件系统路径的覆盖率。(可多次使用)
- --cov-report=type
要生成的报告类型:term、term-missing、annotate、html、xml、json、lcov(可多次使用)。term、term-missing 后面可以跟“:skip-covered”。annotate、html、xml、json 和 lcov 后面可以跟“:DEST”,其中 DEST 指定输出位置。使用 –cov-report= 不生成任何输出。
- --cov-config=path
覆盖率的配置文件。默认值:.coveragerc
- --no-cov-on-fail
如果测试运行失败,则不报告覆盖率。默认值:False
- --no-cov
完全禁用覆盖率报告(对调试器有用)。默认值:False
- --cov-reset
重置迄今为止在选项中累积的 cov 源。主要对脚本和配置文件有用。
- --cov-fail-under=MIN
如果总覆盖率低于 MIN,则失败。
- --cov-append
不删除覆盖率,而是追加到当前覆盖率。默认值:False
- --cov-branch
启用分支覆盖率。
- --cov-context
选择设置动态上下文的方法。