我将测试拆分到多个 Python 文件中:
tests
├── __init__.py
├── test_apples.py
└── test_bananas.py.py
我将测试导入到“__init__.py”文件中:
from test_apples import ApplesTest
from test_bananas import BananasTest
但是在命令行上运行 Pyflakes:
pyflakes .
会输出以下错误:
tests/__init__.py:1: [E] PYFLAKES:'ApplesTest' imported but unused
tests/__init__.py:2: [E] PYFLAKES:'BananasTest' imported but unused
你看到这些错误是因为 Pyflakes 只是静态分析代码,它不明白你导入这些测试用例是为了在其他地方运行它们(例如,通过测试运行器)。
你有几种方法可以解决这个问题:
1. 使用
# noqa
注释
:
这是最简单的解决方法。你可以在导入语句的末尾添加
# noqa
,告诉 Pyflakes 忽略这一行的错误:
from test_apples import ApplesTest # noqa
from test_bananas import BananasTest # noqa
2. 使用
__test__ = {}
:
你可以在
__init__.py
文件中设置
__test__
字典为空字典。这会告诉测试发现机制不要将
__init__.py
文件本身视为包含测试,从而避免 Pyflakes 检查这些导入:
from test_apples import ApplesTest
from test_bananas import BananasTest
__test__ = {}
3. 使用
# type: ignore
:
从 Python 3.9 开始,你可以在导入语句后使用
# type: ignore
来忽略所有类型检查错误,包括 Pyflakes 的 “imported but unused” 错误:
from test_apples import ApplesTest # type: ignore
from test_bananas import BananasTest # type: ignore
这些方法都可以解决你的问题,选择哪一种取决于你的偏好和 Python 版本。
标签:python,import,lint,pyflakes From: 8427701