python-Coverage 代码覆盖率统计工具,生成html代码报告
Posted Python 集中营
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-Coverage 代码覆盖率统计工具,生成html代码报告相关的知识,希望对你有一定的参考价值。
代码覆盖率
\'\'\'
摘自百度百科:
分析未覆盖部分的代码,从而反推在前期测试设计是否充分,没有覆盖到的代码是否是测试设计的盲点,为什么没有考虑到?
需求/设计不够清晰,测试设计的理解有误,工程方法应用后的造成的策略性放弃等等,之后进行补充测试用例设计。
检测出程序中的废代码,可以逆向反推在代码设计中思维混乱点,提醒设计/开发人员理清代码逻辑关系,提升代码质量。
代码覆盖率高不能说明代码质量高,但是反过来看,代码覆盖率低,代码质量不会高到哪里去,可以作为测试自我审视的重要工具之一。
\'\'\'
第三方库
# pip install coverage
控制台统计方式
# 需要统计的python文件,hello_world.py
def hello_world():
print(\'Welcome to Python 集中营\')
# coverage命令执行代码统计
# coverage run hello_world.py
# 控制台输出报告
# coverage report
# Welcome to Python 集中营
# Name Stmts Miss Cover
# ------------------------------
# test1.py 12 11 8%
# ------------------------------
# TOTAL 12 11 8%
# 生成html报告
# coverage html
# 打开项目名_py.html 可以在浏览器直接查看醒目报告
API统计方式
# 导入coverage代码覆盖率统计包
import coverage
if __name__ == \'__main__\':
cover_code = coverage.coverage() # 创建coverage统计对象
cover_code.start() # 开始统计
hello_world() # 需要统计的代码块
cover_code.stop() # 结束统计
cover_code.save() # 保存
cover_code.report() # 生成控制台报告
cover_code.html_report() # 生成html报告
# Welcome to Python 集中营
# Name Stmts Miss Cover
# ------------------------------
# test1.py 12 11 8%
# ------------------------------
# TOTAL 12 11 8%
【粉丝福利】关注公众号,获取全套视频资料,Coverage 是用于统计 Python 代码覆盖率的工具,支持分支覆盖率统计,生成 HTML 格式的统计报告,Coverage利用到了Python虚拟机的trace机制。Coverage主要有两种覆盖率的统计方式,一种是在命令行使用Coverage命令进行统计。另一种则是通过API的方式进行统计。喜欢小编点个 \'关注\' 吧!
【往期精选】
● 磨刀不误砍柴工,PyCharm开发工具的常规配置,充分提高开发效率!
● python程序的处理进度、可视化管理,对运行步骤一目了然!
● python-openpyxl Excel的单元格样式设置,包括字体、样式、宽高等等!
● 了解一下百度提供的python通用文字识别功能,距离百度AI近了一点点!
● 一句代码生成的超炫二维码
● python-docxtpl妙用:论文神器,excel习题集自动转换成word文档格式!
● 办公室文员必备python神器,将PDF文件表格转换成excel表格!
● python 中最好用的身份证规则解析工具,地区码、性别、出生年月、身份证编码等快速校验!
● os用法总结:python中必须掌握的内置模块os,实现与计算机操作系统的常规交互!
● python 实用技巧:几十行代码将照片转换成素描图、随后打包成可执行文件(源码分享)
● python十行代码实现文件去重,去除重复文件的脚本
● python的GUI框架tkinter,实现程序员的流氓式表白逻辑
● 探究python函数的不定长参数*args与**kwargs
● 没有深思过的python冷知识你知道几个?
本文由微信公众号【python 集中营】发布,更多精彩文章、视频资料即可领取!
以上是关于python-Coverage 代码覆盖率统计工具,生成html代码报告的主要内容,如果未能解决你的问题,请参考以下文章