1. 代码覆盖率

单元测试代码覆盖率作为一种度量方式,可以计算单元测试用例对于被测代码的覆盖程度,即:被执行的代码数量和代码总数量的比值

统计代码覆盖率 ,经常在单元测试后再进行,可以为测试结果提供评判依据

Python 项目最常使用的代码覆盖率统计工具就是: C overage

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学习qq群:775690737 送python零基础入门学习资料+99个源码

然后,编写单元测试用例

根据上面的被测方法,这里使用 Python 自带的 unitte st  依赖库来编写 2 个简单的测试用例

并且,特意只 覆盖到了上面 方法的  2 个分支,即:优秀和良好

# 单元测试
# test_get_level.py
import unittestfrom 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)
加python学习qq群:775690737 送python零基础入门学习资料+99个源码

右键运行单元测试,会发现两个测试用例都是通过的

接下来,分别使用 Coverage 命令和 API 在本地生成代码覆盖率统计报告

1、Coverage 命令

在项目根目录下,运行 coverage run 命令,生成 .coverage 文件,搜集被测试源代码覆盖率的信息

# 1、搜集被测代码覆盖率信息,保存到 .coverage 文件中
coverage run test_get_level.py# 2、生成覆盖率统计结果报告
coverage html -d coverage_result

然后,使用 coverage html -d  命令在同级目录下生成代码覆盖率统计报告

用浏览器打开统计报告文件夹中的 index.html 文件, 其中:

statements :代码总行数,不包含空行和注释行

missing :未执行的代码行数

coverage :代码覆盖率

点击 test_get_level.py 文件,可以非常直观地查看到,哪些代码执行了,哪些代码没有被执行

2、C overage API

使用  Coverage API 生成代码覆盖率统计报告更方便

只需要使用查找测试套件并运行,然后使用 Coverage API 进行分析、保存、展示即可

# 使用 API 生成代码覆盖率统计报告
# exec_api.pyimport 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学习qq群:775690737 送python零基础入门学习资料+99个源码

4. 最后

上面只是通过一个简单的 Python 方法结合 unittest 单元测试框架,展示了 Coverage 获取代码覆盖率统计报告的方法

实际项目中, 更多应用场景是:   Python 自动化 、 Django / Flask  Web 项目统计单元测试用例的代码覆盖率,以提升产品的质量

我已经将文中全部源码上传到

加python学习qq群:775690737 送python零基础入门学习资料+99个源码

聊聊 Python 代码覆盖率工具 - 大咖爱爬虫相关推荐

  1. python代码覆盖率工具_Python代码覆盖率分析工具Coverage

    简介 在测试中,为了度量产品质量,代码覆盖率被作为一种测试结果的评判依据,在Python代码中用来分析代码覆盖率的工具当属Coverage.代码覆盖率是由特定的测试套件覆盖被测源代码的程度来度量,Co ...

  2. python代码覆盖率工具——coverage

    今天发现了一个好用的python代码覆盖率检查工具:coverage, 可以高亮显示代码中哪些语句未被执行,哪些执行了,方便单测. 环境: Linux x86_64 (不能连外网) 下载: 上 htt ...

  3. Django大咖之路: 如何对付学习Django过程中所遇到的挫败感?

    Django作为一个成熟的网站和网络应用开发框架,有着大而全的模块和功能.对于刚从事网站开发或刚熟悉Python语言的新手而言,觉得学习Django好难是一件非常普遍的事情.小编我就以亲身经历告诉你如 ...

  4. 大咖发声 | 聊聊火爆前端圈的“犀牛书”

    今年是牛年,大家期盼已久的"犀牛书"<JavaScript权威指南>第7版的中文版也终于在牛年摆上书架,我觉得这可能就是所谓的冥冥中自有安排吧.众所周知,计算机类的技术 ...

  5. 与python相关的爬虫工具_python小课堂|爬虫工程师必备的10个python爬虫工具!

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注py ...

  6. 技术大咖齐聚爱数智慧人机交互技术论坛 | CNCC2021

    CNCC2021[人机交互技术的机遇与挑战]技术论坛将于2021年10月28日13:00-16:00在深圳国际会展中心CC105B召开,本次论坛由CCF主办,爱数智慧创始人兼CEO张晴晴担任论坛主席, ...

  7. 如何自学Python?这本技术大咖推荐Python书籍,就是你的第一选择

    在人工智能的风口,Python越来越火,同时学习Python的小伙伴也越来越多,今天为你们推荐一本Python自学必备的书籍--<流畅地Python>. 为什么推荐这本书呢? 一.口碑优秀 ...

  8. python代码覆盖率测试_利用coverage工具进行Python代码覆盖率测试

    Coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码对被测代码的覆盖率情况. Coverage安装 1.安装命令:pip install coverage 2.查看cov ...

  9. 大咖齐聚!好好聊聊啥是AI大模型

    随着人工智能步入工业大生产阶段,AI大模型正在加速走出实验室,在全球范围内逐步实现产业落地应用的突破.自2020年至今,越来越多的科技巨头和科研机构参与其中.去年12月,百度发布了全球首个知识增强千亿 ...

最新文章

  1. c 语言中下标运算符,详解C++中二进制求补运算符与下标运算符的用法
  2. python模块离线安装_离线安装db2的python模块ibm_db
  3. [css] 你有使用过css的属性background-blend-mode吗?说说它的运用场景有哪些?
  4. oracle11g中的join,sql - 使用Oracle 11g中的+符号进行左外连接
  5. hdu 4296 Buildings (贪心)
  6. HoloLens开发手记 - Unity之语音输入
  7. QT资源库中图片的调用
  8. 阿里月饼事件,猿方怎么看?
  9. 无穷小、梯度向量和泰勒展开
  10. initializing of server in progress as process 4656
  11. 投资理财-合理配置资产结构
  12. 轻量级过程改进之项目计划
  13. 使用 java.lang.Math 类完成编程
  14. easypoi导入excel实践方法:
  15. 航天信息C48服务器,CSPICE航天信息系统的解析与使用--详细介绍
  16. 灵机一栋团队小黄衫展示
  17. 什么是openshift
  18. 中国砖瓦市场竞争格局与销售策略分析报告2022-2028年版
  19. .NET3.5 GDI+ 图形操作1
  20. linux基础测试题

热门文章

  1. 概率的性质——连续性
  2. STM32cubeIDE生成HEX文件
  3. 微信内域名被多人投诉导致无法访问怎么办?
  4. 遗传算法优化LSTM网络结构(实现自动根据适应度函数:即准确率来全局搜索最佳网络结构):主要被优化参数:网络层数,每层的神经元个数,全连接的层数,全连接层的神经元个数。代码有详细注解
  5. 链改重塑信任,打造零风险的产业生态体系!
  6. Tracup|拒绝低效办公,8个Tips让你芜湖起飞,工作效率MAX
  7. wlop一张多少钱_为什么都说wlop的画很烂?
  8. 服装店管理软件排名,让你选对是关键
  9. Android密码管理器app
  10. 计算机毕业设计之java+ssm基于个人需求的外卖订餐推荐系统