Coverage
一個專門用來檢查代碼覆蓋率的工具,他的使用非常簡單,有兩種使用方法:[命令行運行,配合測試套件使用]
安裝: pip install coverage
一、准備素材
main.py
def get_status(score): if score >= 90: return '優秀' elif score >= 80: return '良好' elif score >= 60: return '及格' else: return '不合格'
test_get_status.py
import unittest from main import get_status class GetStatus(unittest.TestCase): def test1(self): self.assertAlmostEquals(get_status(90)) def test2(self): self.assertAlmostEquals(get_status(70)) if __name__ == '__main__': unittest.main(verbosity=2)
二、使用 coverage 來檢查覆蓋率
2.1 命令行方式
在命令行中運行
# 1、搜集被測代碼覆蓋率信息,保存到 .coverage 文件中 coverage run test_get_level.py # 2、生成覆蓋率統計結果報告 coverage html -d coverage_result
然后看看測試結果
*:statements :代碼總行數
*:missing:未執行代碼行數
*:coverage:代碼覆蓋率
2.2 配合測試套件使用
test_coverage.py
import coverage import unittest cov = coverage.coverage() cov.start() suite = unittest.defaultTestLoader.discover('./', 'test_get_status.py') unittest.TextTestRunner().run(suite) cov.stop() cov.save() cov.report() cov.html_report(directory='res_html')
然后就是運行結果,結果和上圖是一樣的,就不發了