您好,登錄后才能下訂單哦!
如何使用Python代碼覆蓋率工具Coverage,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
單元測試代碼覆蓋率作為一種度量方式,可以計算單元測試用例對于被測代碼的覆蓋程度,即:被執行的代碼數量和代碼總數量的比值
統計代碼覆蓋率,經常在單元測試后再進行,可以為測試結果提供評判依據
Python 項目最常使用的代碼覆蓋率統計工具就是:Coverage
Coverage 是用于統計 Python 代碼覆蓋率的工具,不僅支持分支覆蓋率統計,生成 HTML 格式的統計報告,而且可以集成到 Jenkins 中使用
安裝 Coverage 依賴同樣是使用 pip 安裝
# 安裝 Coverage 依賴
pip3 install coverage
Coverage 官方提供了 2 種方式,用于統計代碼覆蓋率,分別是:
1、Coverage 命令行
2、Coverage API
更詳細的介紹可以參考官方文檔:
https://coverage.readthedocs.io/en/latest/
# 被測代碼
# 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 "差"
# 單元測試
# 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)
# 1、搜集被測代碼覆蓋率信息,保存到 .coverage 文件中
coverage run test_get_level.py
# 2、生成覆蓋率統計結果報告
coverage html -d coverage_result
# 使用 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')
上面只是通過一個簡單的 Python 方法結合 unittest 單元測試框架,展示了 Coverage 獲取代碼覆蓋率統計報告的方法
實際項目中,更多應用場景是: Python自動化、Django/Flask Web項目統計單元測試用例的代碼覆蓋率,以提升產品的質量關于如何使用Python代碼覆蓋率工具Coverage問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。