coverage.py – python 單元測試覆蓋率統計工具

來源:互聯網
上載者:User

前提:
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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.