coverage.py - python 单元测试覆盖率统计工具
前提:
1.假定已經安裝好coverage.py(ubuntu 10.10+python.2.7+coverage3.5.1)
2.項目里有模塊do.py以及測試它的單元測試模塊doTEST.py
命令行:
$ cd /home/user1/workspace/hp1
$ coverage run doTEST.py
$ coverage report
$ coverage html
命令解釋:
第一個命令進入項目目錄,第二個命令 執行coverage命令,調用單元測試,進進行統計(當前目錄生成.coveage文件,該文件默認隱藏)第三個命令是讀取.coveage文件并打印到屏幕,第四個命令時,生成詳細的HTML報表(htmlcov文件夾)
補充:
1)coverage的另一種方式是可以作為模塊被程序import,通過代碼保存統計,未嘗試。
2)如果原來測試的代碼接收參數,如
$ doTEST.py 100 200
那么可以這樣調用我們的單元測試
$ coverage run doTEST.py 100 200
疑問:
我似乎覺得重新執行上述命令時,沒有重新生成報表,如果是這樣的話應該在執行之前執行rm命令將生成的.coveage和htmlcov文件夾先刪除掉,待確認
查看HTML報表:
進入htmlcov目錄,使用firefox打開index.html文件,該文件里包含一個列表,列出了doTEST.py使用過的所有模塊的代碼覆蓋信息,其中也包括我們關心的do.py的情況,如果測試用例完善,理論上do.py每一行代碼都應該被執行過(被覆蓋),反之如果do.py里某些代碼沒有被執行,則說明我們的測試用例還不完善,需要增加測試用例,以保證do.py每一行都被執行過。
在目錄頁我們可以看到概要信息,點擊文件名可以查看信息,例如:
Coverage for verify : 98%
65 statements 63 run 2 missing 0 excluded 0 partial
verify是模塊名稱(verify.py)該模塊有65條語句,63條被執行,2條未被執行,覆蓋率98%,點擊run和missing還會對代碼進行標紅和標綠,紅色表示未覆蓋,綠色表示已覆蓋
分支覆蓋:
$ coverage run --branch doTEST.py
轉載于:https://www.cnblogs.com/code-style/archive/2012/01/13/2321962.html
總結
以上是生活随笔為你收集整理的coverage.py - python 单元测试覆盖率统计工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到一个地方很多次是为什么
- 下一篇: DWT算法