Coverage——Django代碼覆蓋率測試
Coverage是一個用來測試python程序代碼覆蓋率的工具,它能夠識別代碼的哪些部分已經(jīng)被執(zhí)行,并識別有哪些可以執(zhí)行但未執(zhí)行的代碼。覆蓋率測試通常用來衡量測試的有效性和完善性。
安裝
方法一:
pip install coverage(但it doesn't work on my電腦:( )
方法二:
https://pypi.org/project/coverage/在此網(wǎng)站上下載安裝包并在本地安裝
(it works:) )
使用簡介
1.用coverage run my_program.py arg命令來運(yùn)行程序

2.coverage report命令可以在屏幕上顯示運(yùn)行結(jié)果

可以查看已覆蓋數(shù)、未覆蓋數(shù)以及覆蓋百分比
3.coverage html命令可獲得更加詳細(xì)的信息
此命令在同級目錄下生成包含html文件的文件夾,默認(rèn)名稱為htmlcov,點(diǎn)擊打開index.html即可。
4.coverage run --branch my_program.py arg命令支持分支覆蓋測量
若程序中的某一行能夠跳轉(zhuǎn)到多個下一行(例如if語句),那么coverage會跟蹤實際訪問過哪些目標(biāo),并且標(biāo)記出沒有被訪問的代碼。相應(yīng)的html報告中,未執(zhí)行的分支以黃色顯示,右側(cè)注釋也會顯示未執(zhí)行的分支行號。
5.coverage xml命令可以生成xml格式的報告
實例
$coverage run manage.py test
$coverage html
生成網(wǎng)頁如下圖:

可以通過點(diǎn)擊 Module 列中列出的文件名來打開一個新的頁面,頁面中將會明顯標(biāo)識出代碼中沒有被單體覆蓋的部分。

其他
coverage.py 支持配置文件。配置文件格式是傳統(tǒng)的“.ini”文件,還可以使用 # 或者 ; 來添加注釋。
Coverage.py 也允許在上述提到的配置文件中指定需要解析的源文件。在配置文件中設(shè)置了需要解析的文件后就可以通過運(yùn)行 coverage.py 來看運(yùn)行結(jié)果。它還支持“--source”命令行選項。
coverage.py還就是它支持插件。你可以自己寫插件,也可以從網(wǎng)上下載并安裝別人的插件來增強(qiáng) coverage.py 的功能。
總結(jié)
Coverage.py 可以檢測單體測試代碼并且發(fā)現(xiàn)單體測試覆蓋中的漏洞,但高質(zhì)量的測試仍然需要自己編寫。coverage的配置相對來說比較簡單,但是我在配置的過程中還是踩了不少坑,例如報錯DJANGO_SETTINGS_MODULE or call settings.configure()等。真誠建議大家遇到坑時使用google而不是百度搜索==
參考:https://coverage.readthedocs.io/en/v4.5.x/