提供合理默认设置的覆盖率插件
项目描述
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 不会更改该值。