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覆盖率的方式 但是对于一些比较复杂或者代码结构不够规范的项目,有 ...
随机推荐
- PHPCMS 1分钟快速搭建
一.下载CMS源码 https://www.yzmcms.com/xiazai 下载完成后得到一个这样的压缩包 接着下载PHPStudy,安装只要一直点下一步就可以了 安装完成后打开,如下图启动两个地 ...
- 64)vertor 简单使用
1)简单 代码样例:我的理解 vector 其实就是一个简单的数组,然后通过迭代器来进行 遍历数组中的值,而且有自带push_back()来添加元素 #include<iostream&g ...
- UML-类图-箭头
概览 1.泛化 一般理解为 继承.实线+空心箭头 2.依赖 成员变量.局部变量.参数.虚线+箭头 public class Sale { public void updatePriceFor(Prod ...
- 如何编写一个vue应用
1.vue应用的组成 1.1 vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化 通常 ...
- 埃拉托色尼(Eratosthenes)筛法
用筛选法求1—100之内的素数(此法难度的话,方法可以不界定:能完成求1—100之内的素数即可). 在一张纸上写上1到100全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它挖掉,最后 ...
- vue 常用知识点
1.数据变更,页面渲染完成 this.$nextTick(function(){ alert('v-for渲染已经完成') }) 2.iview select组件 setQuery用法 <Sel ...
- 关于vue内只要html元素的代码
使用v-model v-text v-html vue会解析出入的html代码报错 则上传sku的description时需要html页面的代码 所以在description 所在的表单元素内加入 v ...
- 判断1/N是否为无限小数
给定一个正整数N,请判断1/N是否为无限小数,若是输出YES,若不是请输出NO. 思路: 只要被除数n可以转换成2的次幂或者2与5的组合即为有限小数,否则为无线小数 代码如下: #include &l ...
- mysql only_full_group_by
下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了. 一旦开启 only ...
- 37)智能指针(就是自动delete空间)
1)问题引入: 在java或者在C++中,一旦你new一个东西,那么必然有一个delete与之对应,比如: int main() { int* p= new int(): *p=: delete p: ...