我有一个项目,我正在使用 tox 进行测试,它运行 flake8 测试。 我想将与其他所有内容不同的 flake8 配置应用于我的测试目录;我想在我的测试中忽略 E402,因为在导入要测试的模块之前,我弄乱了sys.path
。
flake8 配置语法只允许您将一个配置应用于与包含/排除匹配的文件,因此我添加了./tests/.flake8
以添加仅适用于这些文件的配置。
./毒.ini
[tox]
envlist = lint, py27, py36
[testenv]
commands =
coverage run --source=myModule -a setup.py test
[testenv:lint]
basepython = python3
ignore_errors = True
deps =
-r{toxinidir}/requirements_test.txt
commands =
flake8
pylint myModule
pydocstyle myModule tests
[flake8]
count = true
statistics = True
./tests/.flake8
[flake8]
ignore = E402
使用我的tox.ini
文件中的 flake8 选项,点文件始终被忽略。 由于tox.ini
文件中没有选项,dotfile 由 flake8 从命令行运行使用,但在由 tox 运行时被忽略。
看起来没有办法将不同的 flake8 配置应用于同一项目下的不同文件集。 我是否在配置语法中遗漏了一些允许我在这里做我想做的事情的东西?
从版本 3.7.0 开始,flake8
现在包含一个标志来执行您想要的操作:per-file-ignores
。要在配置文件中使用它,请执行以下操作:
[flake8]
per-file-ignores =
tests/*: E402
也可以通过在flake8
调用中添加如下标志来在命令行上应用它:
--per-file-ignores=tests/*.py:E402
您可以尝试运行两次flake8
— 一次使用全局配置排除tests/
,第二次运行tests/
:
commands =
flake8 --exclude=tests
cd tests && flake8