内联注释指令覆盖率和flake8

时间:2018-11-22 10:53:24

标签: python code-coverage

假设我有以下__init__py

# __init__.py
from . import my_foo

就像这样,flake8会向F401投诉。这可以通过以下方法解决:

# __init__.py
from . import my_foo  # NOQA: F401

另一方面,cov的{​​{1}}插件会抱怨此行没有测试。这可以通过以下方法解决:

pytest

我该如何使两个人快乐?我可以做类似的事情:

# __init__.py
from . import my_foo  # pragma: no cover

但这会从# flake8: noqa from . import gender # pragma: no cover 的角度影响整个文件。

我也尝试过类似的事情:

flake8

但是它没有按预期工作。

1 个答案:

答案 0 :(得分:2)

coverage.py的注释语法是可配置的。您可以覆盖匹配行的正则表达式:Advanced Exclusion

例如:

[report]
exclude_lines =
    pragma: no cover

这将与包含“ pragma:no cover”的任何行匹配,因此此注释现在应该有效:

# NOQA: F401; pragma: no cover

默认正则表达式仅在“#”和“ pragma”之间需要空格