一、介紹
Flake8 是由Python官方發布的一款輔助檢測Python代碼是否規范的工具,flake8是下面三個工具的封裝:
- PyFlakes
- Pep8
- NedBatchelder’s McCabe script
Flake8通過啟動單獨的flake8腳本運行所有工具,它在一個Per文件中顯示告警,合並到輸出中。
也增加一些特征:
- 包含這行文件將被忽略:#flake8: noqa
- 結尾包含#noqa注釋的行將不發布告警
- GIT和Mercurial鈎子
- McCabe復雜度檢查器
- 可以通過flake8.extension入口點擴展
二、使用
1、檢查指定目錄下的文件(包括這個目錄的所有子文件)
例如:我們有一個目錄Zbj_project,如果我想檢查這個目錄下的所有文件是否規范:(在命令行中使用[即windows的cmd下])
flake8 Zbj_project
2、如果你只想檢查這些文件的特定的錯誤類型(e.g., E123)
flake8 --select E123 Zbj_project
3、如果需要選擇以特定類型開頭的錯誤碼,eg:以E開頭
flake8 --select E Zbj_project
如果需要選擇多個特定錯誤碼用逗號隔開就可以了
4、忽略特定錯誤碼
靜態代碼檢查忽略H233類型錯誤
flake8 --ignore H233 Zbj_prioject
5、忽略特定文件/文件夾
靜態代碼檢查忽略test2.py文件
flake8 --exclude Zbj_project/path/test.py Zbj_project
6、關於Flake8更多命令參考
flake8 –-help
7、Flake8的小插件
Flake8相比其他Python靜態代碼檢查工具的優勢在於其良好的擴展性,以下是介紹Flake8幾款比較流行的插件:
1.hacking
插件安裝
pip install hacking
hackinghacking插件安裝完成之后,會新增一類錯誤返回碼以H開頭:H***:hacking返回的錯誤類型。
在hacking中有些錯誤類型檢測是默認關閉的,可以通過命令行或者配置文件修改開關:enable-extensions= H106,H203
2.pep8-naming
針對目前pep8尚未支持命名規范的檢查,有人開發出了此款插件作為規則補充。
pep8-naming插件安裝完成之后,會新增一類錯誤返回碼以N開頭:N***: pep8-naming返回的錯誤類型。
安裝
pip install pep8-naming


8、在Jenkins上分析flake8的報告
在Flake8上安裝插件,flake8-junit-report將flake8的報告轉換為junit format
1.安裝flake8-junit-report
pip install flake8-junit-report
2.輸出Flake8測試報告
flake8 --output-file flake8.txt shadowtest
3.轉換成junit測試結果的xml
python -m junit_conversor flake8.txt flake8_junit.xml