提供合理默认设置的覆盖率插件
项目描述
covdefaults
提供合理默认设置的覆盖率插件
安装
pip install covdefaults
使用
要启用插件,将covdefaults
添加到您的覆盖率插件中
在.coveragerc
[run]
plugins = covdefaults
在setup.cfg
/ tox.ini
[coverage:run]
plugins = covdefaults
在pyproject.toml
[tool.coverage.run]
plugins = ["covdefaults"]
默认设置
[coverage:run]
branch = True
source = .
omit =
*/__main__.py
*/setup.py
[coverage:report]
show_missing = True
skip_covered = True
fail_under = 100
exclude_lines =
# a more strict default pragma
\# pragma: no cover\b
# allow defensive code
^\s*raise AssertionError\b
^\s*raise NotImplementedError\b
^\s*return NotImplemented\b
^\s*raise$
# typing-related code
^\s*if (False|TYPE_CHECKING):
: \.\.\.(\s*#.*)?$
^ +\.\.\.$
-> ['"]?NoReturn['"]?:
# non-runnable code
if __name__ == ['"]__main__['"]:$
# additional platform related pragmas (see below)
# additional version related pragmas (see below)
partial_branches =
# a more strict default pragma
\# pragma: no cover\b
# out platform pragmas
\# pragma: (nt|posix|cygwin|darwin|linux|msys|win32|cpython|pypy) (no )?cover\b
# our version pragmas
\# pragma: (>=?|<=?|==|!=)\d+\.\d+ cover\b
平台特定的# pragma: no cover
将根据平台和实现自动添加多个# pragma: no cover
标签。
这些标签的形式将是
# pragma: TAG no cover
或
# pragma: TAG cover
这些标签将由以下值生成
os.name
nt
(Windows)posix
(Linux,macOs,cygwin等)
sys.platform
cygwin
darwin
(macOs)linux
msys
win32
sys.implementation.name
cpython
pypy
对于每个不匹配的标签,您可以使用否定。以下是一个示例
if sys.platform == 'win32': # pragma: win32 cover
bin_dir = 'Scripts'
else: # pragma: win32 no cover
bin_dir = 'bin'
注意,# pragma: win32 cover
将变为除了win32
之外的所有内容的“不覆盖”--而# pragma: win32 no cover
只会在win32
上执行“不覆盖”。
特定版本的# pragma: no cover
将根据平台和实现自动添加多个# pragma: no cover
标签。
这些标签的形式将是
# pragma: >=#.# cover
其中比较运算符是>
,>=
,<
,<=
,==
或!=
之一
例如
if sys.version_info >= (3, 9): # pragma: >=3.9 cover
print('3.9+')
else: # pragma: <3.9 cover
print('old')
覆盖选项
在您的覆盖率配置中可以覆盖/扩展一些选项。以下示例假设.coveragerc
,但任何coverage
支持的文件都可以。
run:omit
[run]
omit =
pre_commit/resources/*
这将导致除了由covdefaults
提供的默认设置外,pre_commit/resources/*
还将被omit
。
[covdefaults]
subtract_omit = */__main__.py
这将导致不omit
掉*/__main__.py
(*/__main__.py
是covdefaults
提供的默认设置之一)。
run:source
[run]
source = $PWD
如果手动设置,covdefaults 不会将此值覆盖为 .
。
报告:排除行
[report]
exclude_lines =
^if MYPY:$
这将导致匹配 ^if MYPY:$
的行除了 covdefaults
提供的默认值外,还将从覆盖率中排除。
报告:失败下限
[report]
fail_under = 90
如果您为 fail_under
提供了值,covdefaults
不会更改该值。