Travis-CI:不要因为林特警告而使构建失败

use*_*157 0 python unit-testing lint travis-ci flake8

我有一个旧的python项目,正在尝试逐步使用flake8进行清理(警告PEP8问题)。我使用Travis进行持续集成,并希望如果任何单元测试失败,我的构建也会失败。但是,我不希望我的构建仅因为flake8产生了警告而失败(例如,关于诸如尾随空白之类的小问题)的警告。

如何配置Travis以输出flake8警告(以便在有空的时候可以解决它们)而又不会导致构建失败?

我的.travis.yml如下:

language: python
python:
  - "3.6"

install:
  - pip install -r requirements.txt
  - pip install flake8

script:
  - python -m unittest discover -v
  - flake8 .
Run Code Online (Sandbox Code Playgroud)

flake8警告示例:

./meta-db/file_system.py:103:80: E501 line too long (108 > 79 characters) 
./meta-db/file_system.py:106:68: W291 trailing whitespace
Run Code Online (Sandbox Code Playgroud)

use*_*157 5

在flake8中添加--exit-zero标志可以在不使Travis构建失败的情况下显示棉绒警告/错误。

script:
  - python -m unittest discover -v
  - flake8 . --exit-zero # Exit with status code "0" even if there are errors.
Run Code Online (Sandbox Code Playgroud)