插件覆盖率

在 pytest 插件上获取覆盖率是一个非常特殊的情况。由于 pytest 实现插件的方式(使用 setuptools entrypoints),它不允许控制插件加载的顺序。有关技术细节,请参阅 pytest/issues/935

处理此问题的当前方法是使用 append 功能并手动启动 pytest-cov 的引擎,例如

COV_CORE_SOURCE=src COV_CORE_CONFIG=.coveragerc COV_CORE_DATAFILE=.coverage.eager pytest --cov=src --cov-append

或者,您也可以在 tox.ini 中使用此方法(如果您使用的是 Tox 的话)

[testenv]
setenv =
    COV_CORE_SOURCE=
    COV_CORE_CONFIG={toxinidir}/.coveragerc
    COV_CORE_DATAFILE={toxinidir}/.coverage

以及在 pytest.ini / tox.ini / setup.cfg

[tool:pytest]
addopts = --cov --cov-append