Dro*_*ror 3 python code-coverage
假设我有以下内容__init__py:
# __init__.py
from . import my_foo
Run Code Online (Sandbox Code Playgroud)
就像这样,flake8会抱怨F401。这可以通过以下方法解决:
# __init__.py
from . import my_foo # NOQA: F401
Run Code Online (Sandbox Code Playgroud)
另一方面,cov插件pytest会抱怨这条线没有测试。这可以通过以下方法解决:
# __init__.py
from . import my_foo # pragma: no cover
Run Code Online (Sandbox Code Playgroud)
我怎样才能让双方都幸福呢?我可以做类似的事情:
# flake8: noqa
from . import gender # pragma: no cover
Run Code Online (Sandbox Code Playgroud)
flake8但从的角度来看,这会影响整个文件。
我也尝试过类似的事情:
from . import gender # pragma: no cover, NOQA: F401
Run Code Online (Sandbox Code Playgroud)
但它并没有按预期工作。
coverage.py 的注释语法是可配置的。您可以覆盖行匹配的正则表达式:高级排除
例如:
[report]
exclude_lines =
pragma: no cover
Run Code Online (Sandbox Code Playgroud)
这将匹配任何包含“pragma: no cover”的行,因此此注释现在应该有效:
# NOQA: F401; pragma: no cover
Run Code Online (Sandbox Code Playgroud)
默认正则表达式仅需要“#”和“pragma”之间有空格