python flake8 代碼掃描


一、介紹

Flake8 是由Python官方發布的一款輔助檢測Python代碼是否規范的工具,flake8是下面三個工具的封裝:

  1. PyFlakes
  2. Pep8
  3. NedBatchelder’s McCabe script

Flake8通過啟動單獨的flake8腳本運行所有工具,它在一個Per文件中顯示告警,合並到輸出中。

也增加一些特征:

  1. 包含這行文件將被忽略:#flake8: noqa
  2. 結尾包含#noqa注釋的行將不發布告警
  3. GIT和Mercurial鈎子
  4. McCabe復雜度檢查器
  5. 可以通過flake8.extension入口點擴展
安裝:pip install flake8
 

二、使用

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

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM