我有一个项目,我正在使用tox进行测试,它运行flake8测试。我想从其他所有内容中将不同的flake8配置应用到我的tests目录中;我想在我的测试中忽略E402,因为在导入要测试的模块之前,我正在弄乱sys.path
。
flake8配置语法只允许您将一个配置应用于与include / exclude匹配的文件,因此我添加了./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
./测试/ .flake8
[flake8]
ignore = E402
使用我的tox.ini
文件中的flake8选项,将始终忽略dotfile。在tox.ini
文件中没有选项时,flake8从命令行运行dotfile,但在tox运行时忽略它。
看起来似乎没有办法将不同的flake8配置应用于同一项目下的不同文件集。我是否遗漏了配置语法中允许我在此处执行操作的内容?
答案 0 :(得分:2)
从3.7.0版开始,flake8
FB integration checklist标记了您要执行的操作:per-file-ignores
。要在您的配置文件中使用它,请执行以下操作:
[flake8]
per-file-ignores =
tests/*: E402
也可以通过将这样的标志添加到您的flake8
调用中,将其应用于命令行:
--per-file-ignores=tests/*.py:E402
答案 1 :(得分:1)
您可以尝试运行flake8
两次 - 一次使用不包含tests/
的全局配置,第二次只在tests/
中运行:
commands =
flake8 --exclude=tests
cd tests && flake8