91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Python代碼覆蓋率工具Coverage

發布時間:2021-10-09 17:44:14 來源:億速云 閱讀:215 作者:柒染 欄目:大數據

如何使用Python代碼覆蓋率工具Coverage,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1. 代碼覆蓋率

單元測試代碼覆蓋率作為一種度量方式,可以計算單元測試用例對于被測代碼的覆蓋程度,即:被執行的代碼數量和代碼總數量的比值

統計代碼覆蓋率,經常在單元測試后再進行,可以為測試結果提供評判依據

Python 項目最常使用的代碼覆蓋率統計工具就是:Coverage

 

2. Coverage

Coverage 是用于統計 Python 代碼覆蓋率的工具,不僅支持分支覆蓋率統計,生成 HTML 格式的統計報告,而且可以集成到 Jenkins 中使用

安裝 Coverage 依賴同樣是使用 pip 安裝

# 安裝 Coverage 依賴
pip3 install coverage
 

Coverage 官方提供了 2 種方式,用于統計代碼覆蓋率,分別是:

1、Coverage 命令行

2、Coverage API 

更詳細的介紹可以參考官方文檔:

https://coverage.readthedocs.io/en/latest/

 

3. 實戰一下

首先,用 Python 編寫一段簡單被測代碼,如下:
# 被測代碼 
# main.py
def get_level(cource):
    """
    自定義的方法
    :param cource:成績
    :return:
    """
    if cource >= 90:
        return "優秀"
    elif cource >= 80:
        return "良好"
    elif cource >= 60:
        return "合格"
    elif cource >= 40:
        return "不合格"
    else:
        return "差"
然后,編寫單元測試用例  
 
根據上面的被測方法,這里使用 Python 自帶的  unitte  st   依賴庫來編寫 2 個簡單的測試用例
并且,特意只  覆蓋到了上面  方法的   2 個分支,即:優秀和良好
# 單元測試 
# test_get_level.py 
import unittest

from main import *


class GetLevel(unittest.TestCase):

    def test_get_level1(self):
        self.assertEquals(get_level(90), "優秀")

    def test_get_level2(self):
        self.assertEquals(get_level(80), "良好")


if __name__ == '__main__':
    unittest.main(verbosity=2)
右鍵運行單元測試,會發現兩個測試用例都是通過的
接下來,分別使用 Coverage 命令和 API 在本地生成代碼覆蓋率統計報告
1、Coverage  命令  
在項目根目錄下,運行 coverage run 命令,生成 .coverage 文件,搜集被測試源代碼覆蓋率的信息
# 1、搜集被測代碼覆蓋率信息,保存到 .coverage 文件中
coverage run test_get_level.py

# 2、生成覆蓋率統計結果報告
coverage html -d coverage_result
然后,使用 coverage html -d  命令在同級目錄下生成代碼覆蓋率統計報告

如何使用Python代碼覆蓋率工具Coverage

用瀏覽器打開統計報告文件夾中的 index.html 文件,  其中:
statements  :代碼總行數,不包含空行和注釋行
missing  :未執行的代碼行數
coverage  :代碼覆蓋率

如何使用Python代碼覆蓋率工具Coverage

點擊 test_get_level.py 文件,可以非常直觀地查看到,哪些代碼執行了,哪些代碼沒有被執行

如何使用Python代碼覆蓋率工具Coverage

2、C  overage API
使用 Coverage API生成代碼覆蓋率統計報告更方便
只需要使用查找測試套件并運行,然后使用 Coverage API 進行分析、保存、展示即可  
 
# 使用 API 生成代碼覆蓋率統計報告
# exec_api.py

import coverage
import unittest

# 實例化一個對象
cov = coverage.coverage()
cov.start()

# 測試套件
suite = unittest.defaultTestLoader.discover("./", "test_get_level.py")
unittest.TextTestRunner().run(suite)


# 結束分析
cov.stop()

# 結果保存
cov.save()

# 命令行模式展示結果
cov.report()

# 生成HTML覆蓋率報告
cov.html_report(directory='result_html')

4. 最后

上面只是通過一個簡單的 Python 方法結合 unittest 單元測試框架,展示了 Coverage 獲取代碼覆蓋率統計報告的方法

實際項目中,更多應用場景是: Python自動化、Django/Flask Web項目統計單元測試用例的代碼覆蓋率,以提升產品的質量關于如何使用Python代碼覆蓋率工具Coverage問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

偏关县| 拉萨市| 朝阳区| 凤庆县| 洛扎县| 子洲县| 宝丰县| 儋州市| 铅山县| 西城区| 保山市| 南靖县| 秀山| 凤凰县| 舒城县| 正定县| 鹤峰县| 昌黎县| 淳安县| 水富县| 张家港市| 耒阳市| 简阳市| 平泉县| 枞阳县| 兖州市| 伽师县| 博乐市| 扎兰屯市| 姜堰市| 武乡县| 额济纳旗| 南宫市| 秦安县| 全州县| 郓城县| 磐石市| 普兰县| 洞口县| 马公市| 新安县|