我有一个项目,我使用 tox 进行测试,它运行 flake8 测试。我想对我的测试目录应用与其他目录不同的 flake8 配置;我想在测试中忽略 E402,因为我sys.path
在导入要测试的模块之前搞乱了。
flake8 配置语法仅允许您将一种配置应用于包含/排除匹配的文件,因此我添加了./tests/.flake8
仅适用于这些文件的配置。
./tox.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
Run Code Online (Sandbox Code Playgroud)
./测试/.flake8
[flake8]
ignore = E402
Run Code Online (Sandbox Code Playgroud)
使用我的文件中的 flake8 选项tox.ini
,点文件始终被忽略。如果文件中没有选项,tox.ini
则 flake8 从命令行运行时会使用 dotfile,但在 tox 运行时会被忽略。
看起来没有办法将不同的 flake8 配置应用于同一项目下的不同文件集。我是否在配置语法中遗漏了一些可以让我在这里做我想做的事情的东西?
从版本 3.7.0 开始,flake8
现在包含一个标志来执行您想要的操作:per-file-ignores
。要在配置文件中使用它,请执行以下操作:
[flake8]
per-file-ignores =
tests/*: E402
Run Code Online (Sandbox Code Playgroud)
它也可以通过在调用中添加如下标志来应用在flake8
命令行上:
--per-file-ignores=tests/*.py:E402
Run Code Online (Sandbox Code Playgroud)