unittest+coverage单元测试代码覆盖操作实例详解


Posted in Python onApril 04, 2018

基于上一篇文章,这篇文章是关于使用coverage来实现代码覆盖的操作实例,源代码在上一篇已经给出相应链接。

本篇文章字用来实现代码覆盖的源代码,整个项目的测试框架如下:

unittest+coverage单元测试代码覆盖操作实例详解

就是在源代码的基础上加了一个CodeCover.py文件,执行该文件会在目录CoverageReport生成相应的覆盖报告。如下是CodeCover.py的源码:

#coding=utf8 
import os 
import time 
 
def findTestWithPath(): 
  current_dir=os.getcwd() 
  folderName=os.listdir(current_dir) 
  #print folderName 
  #获取到测试文件所在目录 
  TestSuit=[suite for suite in folderName if  not suite.find("TestSuit")] 
  #用来保存测试文件 
  testfile=[] 
  withPathFile=[] 
  for suite in TestSuit: 
      #获取测试目录下的所有测试文件 
      testfile=testfile+os.listdir(".\\"+suite) 
      for withPath in testfile: 
        withPath=current_dir+"\\"+suite+"\\"+withPath 
        withPathFile.append(withPath) 
  del testfile 
  #把testfile中的py文件挑选出来 
  withPathFile=[name for name in withPathFile if not "pyc" in name] 
  #print testfile 
  print withPathFile 
  return withPathFile 
 
def codeCoverage(): 
  now = time.strftime("%Y%m%d%H%M")  
  htmlReport=os.getcwd()+"\\"+"CoverageReport" 
  htmlCmd="coverage html -d " + htmlReport +"\\"+now 
  for pyfile in findTestWithPath():  
    runPyCmd="coverage run " + pyfile 
    if os.path.exists(htmlReport) :       
      os.system(runPyCmd) 
      os.system(htmlCmd) 
    else: 
      os.mkdir(htmlReport) 
      os.system(runPyCmd) 
      os.system(htmlCmd) 
       
 
if __name__=="__main__": 
  codeCoverage()

运行结果图:

unittest+coverage单元测试代码覆盖操作实例详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python用装饰器自动注册Tornado路由详解
Feb 14 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
Aug 30 Python
Python爬虫中urllib库的进阶学习
Jan 05 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
使用sklearn之LabelEncoder将Label标准化的方法
Jul 11 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
Python列表切片常用操作实例解析
Mar 10 Python
Python decorator拦截器代码实例解析
Apr 04 Python
Python捕获异常堆栈信息的几种方法(小结)
May 18 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
Python3的进程和线程你了解吗
Mar 16 Python
python unittest实现api自动化测试
Apr 04 #Python
Python Unittest自动化单元测试框架详解
Apr 04 #Python
python如何使用unittest测试接口
Apr 04 #Python
Python统计单词出现的次数
Apr 04 #Python
高效使用Python字典的清单
Apr 04 #Python
Python的numpy库中将矩阵转换为列表等函数的方法
Apr 04 #Python
python 列表,数组,矩阵两两转换tolist()的实例
Apr 04 #Python
You might like
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
vue实现文字加密功能
2019/09/27 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
Python struct模块解析
2014/06/12 Python
小结Python用fork来创建子进程注意事项
2014/07/03 Python
用实例分析Python中method的参数传递过程
2015/04/02 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
python实现简单学生信息管理系统
2020/04/09 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
canvas线条的属性详解
2018/03/27 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
java实现对Hadoop的操作
2021/07/01 Java/Android
Python如何用re模块实现简易tokenizer
2022/05/02 Python