python代碼覆蓋率coverage簡介與用法


如果衡量單元測試對相應代碼的測試重量,覆蓋率是一個必要非充分條件,因此統計代碼的覆蓋率,檢視單測是否充分,就尤為的重要。這里針對python-unittest的單測的覆蓋率coverage進行使用說明與分析.

參考鏈接:https://blog.csdn.net/xiaoxinyu316/article/details/53695342

 

coverage簡介:

coverage是一種用於統計Python代碼覆蓋率的工具,通過它可以檢測測試代碼對被測代碼的覆蓋率如何。可以高亮顯示代碼中哪些語句未被執行,哪些執行了,方便單測。並且,coverage支持分支覆蓋率統計,可以生成HTML/XML報告


官方文檔:http://coverage.readthedocs.org/en/latest/

獲取地址:http://pypi.python.org/pypi/coverage


使用coverage統計代碼覆蓋率的步驟:

  • 安裝coverage包: pip install coverage
  • 在源代碼的根目錄的路徑下面,添加文件‘.coveragerc.py’
1 # 文件中的代碼為:
2 [run]
3 branch = True
4 source = xxx #項目名稱xxx
  • 進入當前待執行的文件路徑下面
  • 執行
  1. coverage run --help   # 打印幫助信息
  2. coverage run test_xxx.py                # 執行test_xxx.py文件,會自動生成一個覆蓋率統計結果文件.coverage
  3. coverage report -m(帶有詳細信息)                  # 查看coverage報告,讀取.coverage文件並打印到屏幕上,可以在命令行里看到統計結果
  4. coverage html -d report                # 生成顯示整體的covergae html形式的報告 (在當前同路徑下生成一個report文件夾,里面包含html形式的報告。通過查看report文件夾下的內容即可)
  • 備注:coverage run test.py命令運行的文件,會統計項目中包括測試文件本身在內的所有文件,run參數的子參數—source可以指定要統計的文件:$ coverage run --source=totest.py test.py 可以只統計totest.py文件。
  • 注意事項:

如果是針對單測的覆蓋率統計,需要在單測文件test_xxx.py的代碼的最后加上。這樣可以執行整個單測代碼,然后執行coverage run test_xxx.py 即可。

1 if __name__ == "__main__":
2     unittest.main()

 

發散:

  • 原理:coverage.py利用了Python虛擬機的trace機制

參考鏈接:https://blog.csdn.net/xluren/article/details/46799939

 

 


免責聲明!

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



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