python代码覆盖率coverage简介与用法
如果衡量单元测试对相应代码的测试重量,覆盖率是一个必要非充分条件,因此统计代码的覆盖率,检视单测是否充分,就尤为的重要。这里针对python-unittest的单测的覆盖率coverage进行使用说明与分析.
参考链接:https://blog.csdn.net/xiaoxinyu316/article/details/53695342
coverage简介:
coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码对被测代码的覆盖率如何。可以高亮显示代码中哪些语句未被执行,哪些执行了,方便单测。并且,coverage支持分支覆盖率统计,可以生成HTML/XML报告。
官方文档:http://coverage.readthedocs.org/en/latest/
获取地址:http://pypi.python.org/pypi/coverage
使用coverage统计代码覆盖率的步骤:
- 安装coverage包: pip install coverage
 - 在源代码的根目录的路径下面,添加文件‘.coveragerc.py’
 
# 文件中的代码为:
[run]
branch = True
source = xxx #项目名称xxx
- 进入当前待执行的文件路径下面
 - 执行
 
- coverage run --help # 打印帮助信息
 - coverage run test_xxx.py # 执行test_xxx.py文件,会自动生成一个覆盖率统计结果文件.coverage
 - coverage report -m(带有详细信息) # 查看coverage报告,读取.coverage文件并打印到屏幕上,可以在命令行里看到统计结果
 - coverage html -d report # 生成显示整体的covergae html形式的报告 (在当前同路径下生成一个report文件夹,里面包含html形式的报告。通过查看report文件夹下的内容即可)
 
- 备注:coverage run test.py命令运行的文件,会统计项目中包括测试文件本身在内的所有文件,run参数的子参数—source可以指定要统计的文件:$ coverage run --source=totest.py test.py 可以只统计totest.py文件。
 
- 注意事项:
 
如果是针对单测的覆盖率统计,需要在单测文件test_xxx.py的代码的最后加上。这样可以执行整个单测代码,然后执行coverage run test_xxx.py 即可。
if __name__ == "__main__":
unittest.main()
发散:
- 原理:coverage.py利用了Python虚拟机的trace机制
 
参考链接:https://blog.csdn.net/xluren/article/details/46799939
python代码覆盖率coverage简介与用法的更多相关文章
- python 代码覆盖率 coverage用法
		
先装coverage: D:\test_python\e8_test>pip install coverageCollecting coverage Downloading https://f ...
 - Python代码覆盖率分析工具Coverage
		
简介 在测试中,为了度量产品质量,代码覆盖率被作为一种测试结果的评判依据,在Python代码中用来分析代码覆盖率的工具当属Coverage.代码覆盖率是由特定的测试套件覆盖被测源代码的程度来度量,Co ...
 - 利用coverage工具进行Python代码覆盖率测试
		
Coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码对被测代码的覆盖率情况. Coverage安装 1.安装命令:pip install coverage 2.查看cov ...
 - Python生态环境简介[转]
		
Python生态环境简介 作者: Mir Nazim 原文: Python Ecosystem - An Introduction 译者: dccrazyboy 原译: Python生态环境简介 当 ...
 - (转)python生态环境简介
		
Python生态环境简介 作者: Mir Nazim 原文: Python Ecosystem - An Introduction 译者: dccrazyboy 原译: Python生态环境简介 当 ...
 - Python正则式的基本用法
		
Python正则式的基本用法 1.1基本规则 1.2重复 1.2.1最小匹配与精确匹配 1.3前向界定与后向界定 1.4组的基本知识 2.re模块的基本函数 2.1使用compile加速 2.2 ma ...
 - Python: sort,sorted,OrderedDict的用法
		
Python: sort,sorted,OrderedDict的用法 from http://stqdd.com/archives/427 by 莫亚菜 python对容器内数据的排序有两种,一种是容 ...
 - Cwinux简介及用法简述
		
我在我的个人博客上发表了一篇文章 Cwinux简介及用法简述 http://apprentice89.com/cwinux_introduction_and_use/
 - python笔记之常用模块用法分析
		
python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...
 
随机推荐
- 转:  关于Linux常用的二进制文件分析方法
			
当你在unix下拿到一个二进制文件但不知道它是什么的时候,可以通过以下方法得到一此提示 1. 最首先应该尝试strings命令,比如拿到一个叫cr1的二进制文件,可以: $ strings cr1 | ...
 - Org-mode五分钟教程ZZZ
			
Table of Contents 1 源起 2 简介 2.1 获取 org-mode 2.2 安装 3 基础用法 3.1 创建一个新文件 3.2 简单的任务列表 3.3 使用标题组织一篇文章 3.4 ...
 - SeaGlass:手工搭建伪基站监控系统
			
“伪基站”即假基站,设备一般由主机和笔记本电脑或手机组成,通过短信群发器.短信发信机等相关设备能够搜取以其为中心.一定半径范围内的手机卡信息,利用2G移动通信的缺陷,通过伪装成运营商的基站,冒用他人手 ...
 - Shell 脚本小试牛刀(5) -- 超便捷脚本之高速ssh 登录其它主机
			
假设你也是以Linux 为工作环境的童鞋,那么此文真是捷报!由于我的学习/工作中(特别是近期玩耍树莓派)常常会使用到ssh 登录其它主机,而每次使用ssh 登录都须要输入老长一大串让我非常烦.所以我写 ...
 - Duplicate property mapping of contactPhone found in
			
启动的时候报Duplicate property mapping of contactPhone found in com....的错误,是因为在建立实体对象的时候,有字段重复了,有的是继承了父类的字 ...
 - POST & GET & Ajax  全解
			
GET&POST&Ajax 全解 一.POST和GET的差别 GET:GET方法提交数据不安全,数据置于请求行.客户段地址栏可见:GET方法提交的数据限制大小在255个字符之内.參数直 ...
 - 16款创建CSS3动画的jQuery插件
			
jQuery插件是用来扩展jQuery原型对象的方法. 本文搜集了用来为你的站点创建CSS3动画的一些jQuery插件. 1. jQuery Smoove Smoove 简化了CSS3转换效果.使得页 ...
 - 【iOS系列】-UITableView的使用
			
UITableView的使用: 第一:数据展示条件 1,UITableView的所有数据都是由数据源(dataSource)提供,所以想在UITableView展示数据,必须设置UITableview ...
 - Oracle可插拔数据库的jdbc连接串写法
			
我在服务器上部署某个第三方系统的数据库的时候,服务器数据库版本为oracle 12c.我采用的方式是新建了一个实例.访问正常. 后来项目的负责人告诉我,oracle12C支持所谓的可插拔数据库.可插拔 ...
 - 2016/04/26  流程   数据库lcdb 四个表  1,用户表users     2,流程表(设定有哪些流程)liucheng   3,流程发起者表(记录谁发起到哪里)  4,流程经过的人员表 flowpath (order排序)
			
流程: 十一 个页面 1,denglu.php(登录) <!DOCTYPE html> <html lang="en"> <head> ...