flax8/pylint在Tox测试环境中失败,引发InvocationError

kaz*_*r.r 13 python testing tox flake8

我一直在学习如何在tox中为我的python项目进行测试.

我有(应该是)一个相当标准的tox初始化文件,如下所示:

[tox]
envlist=py27,flake8
...
[testenv:flake8]
deps=flake8
commands=flake8 library # 'library' is temp. name of project
Run Code Online (Sandbox Code Playgroud)

一切看起来都很正常,所有测试工作,甚至flake8输出都通过(下面的输出).但是,tox引发了一个InvocationError(它在使用pylint进行测试时也是如此)

flake8 recreate: /Users/shostakovich/projects/project_templates/library/.tox/flake8
flake8 installdeps: flake8
flake8 inst: /Users/shostakovich/projects/project_templates/library/.tox/dist/library-0.1.0.zip
flake8 installed: flake8==2.4.1,library==0.1.0,mccabe==0.3,pep8==1.5.7,pyflakes==0.8.1,wheel==0.24.0
library/__main__.py:12:1: F401 'os' imported but unused
library/__main__.py:13:1: F401 're' imported but unused
...
ERROR: InvocationError: '/Users/shostakovich/projects/project_templates/library/.tox/flake8/bin/flake8 library'
Run Code Online (Sandbox Code Playgroud)

我在MaxOSX 10.9.5上运行tox 2.0.2.如果我直接调用flake8或pylint(上面显示了flake8的版本),问题就消失了.

tim*_*ber 17

tox 没有失败,它的确有效!

您的flake8源代码检查有结果,因此tox退出失败,这是您的测试结果.修复调查结果和完成!

您可以将flake8运行配置为忽略具有您的部分的特定代码tox.ini.来自flake8文档:

[flake8]
ignore = E226,E302,E41
Run Code Online (Sandbox Code Playgroud)

您可能感兴趣的选项更多,例如select = ...白名单启用代码检查.