python代码覆盖率统计-coverage
coverage.py是一个用来统计python程序代码覆盖率的工具。它使用起来非常简单,并且支持最终生成界面友好的html报告。在最新版本中,还提供了分支覆盖的功能。
官方网站:
http://nedbatchelder.com/code/coverage/
win32版本下载地址:
http://pypi.python.org/pypi/coverage
或者通过pip来安装:
pip install coverage
如果安装后调用出现问题,请留意安装过程的报错信息,做对应的调整
1. run
执行代码覆盖率统计,只需要通过coverage的run参数执行被统计代码即可。
$ coverage run my_program.py arg1 arg2
跑完后,会自动生成一个覆盖率统计结果文件(data file):.coverage。如果要修改这个默认的文件名也可以,只要设置COVERAGE_FILE环境变量。
2. report
有了覆盖率统计结果文件,只需要再运行report参数,就可以在命令里看到统计的结果
$ coverage report
Name Stmts Exec Cover
---------------------------------------------
my_program 20 16 80%
my_module 15 13 86%
my_other_module 56 50 89%
---------------------------------------------
TOTAL 91 79 87%
3. html
最帅最酷的功能了,直接生成html的测试报告。
$ coverage html -d covhtml
4. combine
用过代码覆盖率工具的都知道,多份结果的合并至关重要。combine这个参数我琢磨了很久,开始总是合并不成功。后来终于明白了。执行合并操作很简单,只要把需要合并的覆盖率结果数据文件放在同一个目录里,然后执行
coverage combine
即可。但是,其实对目录里的结果文件是有要求的,要求就是文件名的格式,需要合并的文件必须有同样的前缀,然后后面跟一个名称(通常是机器名),然后再跟一个数字(通常是进程ID),比如:
.coverage.CoderZh.1234
.coverage.Cnblogs.5678
为了方便执行结果的合并,我们在前面执行统计时,在run参数后面跟一个-p参数,会自动生成符合合并条件的结果文件。
$ coverage run -p my_program.py arg1 arg2
合并后,会再生成一个.coverage文件,然后再执行html查看合并后的报告吧。
其他几个erase annotate debug 参数就不介绍了。
Coverage API
除了使用命令行,还可以在python代码中直接调用coverage模块执行代码覆盖率的统计。使用方法也非常简单:
import coverage cov = coverage.coverage()
cov.start() # .. run your code .. cov.stop()
cov.save()
coverage的构造函数可以设置结果文件的名称等。有个函数容易弄错,就是use_cache,如果设置的use_cache(0),表示不在硬盘上读写结果文件。如果需要结果数据用来合并,一定要设置use_cache(1)。
coverage提供一些很好用的函数,如:exclude(排除统计的代码),html_report(生成html报告),report(控制台输出结果)
python代码覆盖率统计-coverage的更多相关文章
- Python 代码覆盖率统计工具 coverage.py
coverage.py是一个用来统计python程序代码覆盖率的工具.它使用起来非常简单,并且支持最终生成界面友好的html报告.在最新版本中,还提供了分支覆盖的功能. 官方网站: http://ne ...
- Python 测试代码覆盖率统计工具 coverage.py
安装 您可以通常的方式安装coverage.py.最简单的方法是使用pip: $ pip install coverage 要安装预发布版本,您需要指定--pre: $ pip install --p ...
- python代码覆盖率coverage简介与用法
如果衡量单元测试对相应代码的测试重量,覆盖率是一个必要非充分条件,因此统计代码的覆盖率,检视单测是否充分,就尤为的重要.这里针对python-unittest的单测的覆盖率coverage进行使用说明 ...
- 利用coverage工具进行Python代码覆盖率测试
Coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码对被测代码的覆盖率情况. Coverage安装 1.安装命令:pip install coverage 2.查看cov ...
- Python代码覆盖率分析工具Coverage
简介 在测试中,为了度量产品质量,代码覆盖率被作为一种测试结果的评判依据,在Python代码中用来分析代码覆盖率的工具当属Coverage.代码覆盖率是由特定的测试套件覆盖被测源代码的程度来度量,Co ...
- C/C++代码覆盖率统计工具:gcov&&gcovr安装和简单使用
gcov安装 Linux ver: gcov是gcc的自带功能 属于GNU 不用特别安装 Windows ver: 在windows下安装可以使用gcov的gcc 之前试过mingw和Cygwin64 ...
- iOS自动化探索(十)代码覆盖率统计
iOS APP代码覆盖率统计 今年Q3季度领导给加了个任务要做前后端代码覆盖率统计, 鉴于对iOS代码代码比较熟就选择先从iOS端入手,折腾一整天后终于初步把流程跑通了记录如下 覆盖率监测的原理 Xc ...
- Android自动化测试探索(五)代码覆盖率统计
Android 代码覆盖率统计 本周开始准备统计Android自动化用例的代码覆盖率,将最终使用的方法记录下来. 覆盖率监测的原理 覆盖率监测的原理跟iOS上的原理差不多,大致的思路参考下吧, iOS ...
- Android自动化测试探索(七)代码覆盖率统计
之前在 https://www.cnblogs.com/zhouxihi/p/11453738.html 这篇写了一种统计Android覆盖率的方式 但是对于一些比较复杂或者代码结构不够规范的项目,有 ...
随机推荐
- [极客大挑战 2019]Knife
根据题目Knife 猜想尝试用蚁剑连接 http://40b92ebd-5234-40b7-b2e0-3c42fb5ad000.node3.buuoj.cn/?Knife.php 密码:Syc 找到f ...
- 网鼎杯-Fakebook-反序列化和SSRF和file协议读取文件
0x00知识点:SSRF SSRF (Server-side Request Forge, 服务端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外 ...
- IO流的学习以及统计次数最多的单词
IO流: 处理数据类型:字节流(InputStream OutputStream)和字节流(Reader Writer) 数据流向不同:输入流和输出流(FileInputStream File ...
- awk下 gsub函数用法
(2012-03-27 01:37:28) 标签: awk gsub linux 函数 it 分类: linux gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular ...
- zabbix几个配置的关系
- Springboot项目绑定域名,使用Nginx配置Https
一.https 简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HT ...
- sublime3激活方法
激活方法参考这里 $ tail -n4 /etc/hosts # https://blog.csdn.net/DeMeng33/article/details/80536926 127.0.0.1 w ...
- WIFI无线协议802.11a/b/g/n/ac的演变以及区别
摘自:https://blog.csdn.net/Brouce__Lee/article/details/80956945 毫无疑问,WiFi的出现普及带给我们巨大的上网便利,所以了解一下WiFi对应 ...
- curl命令简介
curl 文件传输工具 参数: -c --cokie-jar: 将cookie写入到文件 -b --cokie: 从文件中读取cookie -C --continue-at: 断点续传 -d --da ...
- Python dict 和 list 转换
这里有个dict d1 = { 'en':'英语', 'cn':'中文', 'fr':'法语', 'jp':'日语' } 使用d1.keys()或 d1.values() 可以提取出values 和k ...