我想使用python pep8检查我的代码并生成有关我的应用程序质量的报告
我使用以下命令手动使用它:
# In my app root directory
pep8 . > report.txt
生成一个report.txt文件,pep8检测到所有PEP8错误
但是现在,我需要将它包含在Fabric脚本中。我刚刚那样做了:
def test_pep8():
env.run("pep8 . > report.txt")
当我运行test_pep8
时,出现以下错误,我不知道原因:
(test)➜ fab test_pep8
[localhost] Executing task 'test_pep8'
[localhost] local: pep8 . > report.txt
Fatal error: local() encountered an error (return code 1) while executing 'pep8 . > report'
你知道我为什么会有这样的错误吗? :(生成文件报告,但此错误代码正在停止我的结构命令。
答案 0 :(得分:1)
这是因为pep8 .
返回非零错误代码,这意味着它发现警告并且代码未验证。而且,根据面料的Failure handling
:
Fabric默认为“失败快速”的行为模式:如果有的话 错误,例如返回非零返回值的远程程序或 你的fabfile的Python代码遇到异常,执行会 立即停止。
解决方案是使用hide
暂时将warn_only
设置为True
和settings
context manager错误:
from fabric.context_managers import settings, hide
def test_pep8():
with settings(hide('warnings', 'running', 'stdout', 'stderr'),
warn_only=True):
env.run("pep8 . > report.txt")