第十五章 測試(四)

使用Coverage.py計算測試覆蓋率

       對於測試的質量,有一個重要的考慮指標----測試覆蓋率(test coverage)。100%的測試覆蓋率是理想目標,但有些時候並不是那麼容易實現。對於大多數項目來說,應該儘量將測試覆蓋率保持在90%左右。

       Coverage.py是一個使用python編寫的檢查代碼覆蓋率的工具,我們可以使用它來檢查測試覆蓋率,首先使用pipenv安裝它:

pipenv install coverage --dev

一. 基本用法 

       Coverage.py提供了命令行支持,使用起來非常簡單。爲了演示Coverage.py用法,使用下面一個簡單的python腳本演示一下:

def func1():
    print("123")


def func2():
    print("456")


if __name__ == "__main__":
    func1()

       coverage run命令用來執行腳本並計算代碼執行覆蓋率,命令後要附 加腳本文件名作爲執行的目標:

       這會在腳本所在目錄生成一個.coverage文件,其中包含了運行的結 果數據。我們使用coverage report命令來輸出覆蓋率報告:

       通過報告我們可以看出,這個腳本代碼的執行情況,一共有6行代碼,1行沒有執行,覆蓋率爲83%。 除了在命令行中輸出覆蓋率報告,我們還可以使用coverage html來 查看HTML版本的覆蓋率報告:

coverage html

       這會在腳本所在目錄生成一個htmlcov文件夾,使用瀏覽器打開其 中的index.html文件可以看到HTML格式的覆蓋率報告主頁,如下:

       單擊對應的腳本,我們還可以查看使用顏色標出代碼執行的具體覆蓋情況,點擊"hahaha.py"可進入如下界面:

       最後使用coverage erase可以清除 coverage report產生的.coverage文件:

二. 獲取測試覆蓋率

       我們可以使用下面的命令在運行測試的同時開啓覆蓋率檢查,這樣 就可以獲取測試覆蓋率:

coverage run --source=app --branch -m unittest discover

 

       同樣,coverage report獲取測試報告:

coverage report

       整體覆蓋率爲67%,其中model.py中的代碼覆蓋率很不錯。接下來,獲取更爲詳細的html測試覆蓋率報告:

coverage html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章