Python基于unittest实现测试用例执行


Posted in Python onNovember 25, 2020

利用python进行测试时,测试用例的加载方式有2种:

一种是通过unittest.main()来启动所需测试的测试模块;

一种是添加到testsuite集合中再加载所有的被测试对象,而testsuit里存放的就是所需测试的用例,下面分别列出3种方法的具体使用方式:

1、通过unittest.main()来执行测试用例的方式:

import unittest 
class UCTestCase(unittest.TestCase):
  def setUp(self):
    #测试前需执行的操作
    .....   
  def tearDown(self):
    #测试用例执行完后所需执行的操作
    .....   
  # 测试用例1
  def testCreateFolder(self):
    #具体的测试脚本
    ......   
  # 测试用例2
  def testDeleteFolder(self):
    #具体的测试脚本
    ......    
if __name__ == "__main__":
  unittest.main()

2、通过testsuit来执行测试用例的方式:

import unittest 
# 执行测试的类
class UCTestCase(unittest.TestCase):
  def setUp(self):
    #测试前需执行的操作
    .....    
  def tearDown(self):
    #测试用例执行完后所需执行的操作
    .....
    
  # 测试用例1
  def testCreateFolder(self):
    #具体的测试脚本
    ......   
  # 测试用例2
  def testDeleteFolder(self):
    #具体的测试脚本
    ......    
if __name__ == "__main__":
  # 构造测试集
  suite = unittest.TestSuite()
  suite.addTest(UC7TestCase("testCreateFolder"))
  suite.addTest(UC7TestCase("testDeleteFolder")) 
  # 执行测试
  runner = unittest.TextTestRunner()
  runner.run(suite)

3、通过testLoader方式:

import unittest 
class TestCase1(unittest.TestCase):
  #def setUp(self):
  #def tearDown(self):
  def testCase1(self):
    print 'aaa'   
  def testCase2(self):
    print 'bbb'
 
class TestCase2(unittest.TestCase):
  #def setUp(self):
  #def tearDown(self):
  def testCase1(self):
    print 'aaa1' 
  def testCase2(self):
    print 'bbb1'
    
if __name__ == "__main__":
  #此用法可以同时测试多个类
  suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1) 
  suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2) 
  suite = unittest.TestSuite([suite1, suite2]) 
  unittest.TextTestRunner(verbosity=2).run(suite)

下面针对上述脚本中应用到的unittest模块下的几个成员进行简单的介绍,以便于理解上述代码:

  • TestCase:所有测试用例的基本类,给一个测试方法的名字,就会返回一个测试用例实例;
  • TestSuit:组织测试用例的实例,支持测试用例的添加和删除,最终将传递给 testRunner进行测试执行;
  • TextTestRunner:进行测试用例执行的实例,其中Text的意思是以文本形式显示测试结果。测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息;
  • TestLoader:用来加载TestCase到TestSuite中的,其中有几个 loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例;

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

Python 相关文章推荐
Python 除法小技巧
Sep 06 Python
python使用rabbitmq实现网络爬虫示例
Feb 20 Python
基于Python列表解析(列表推导式)
Jun 23 Python
Python实现快速计算词频功能示例
Jun 25 Python
在Mac上删除自己安装的Python方法
Oct 29 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 Python
Numpy的简单用法小结
Aug 28 Python
python django中8000端口被占用的解决
Dec 17 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
Python 实现PS滤镜的旋涡特效
Dec 03 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 Python
python反爬虫方法的优缺点分析
Nov 25 #Python
Pytest测试框架基本使用方法详解
Nov 25 #Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 #Python
Python json解析库jsonpath原理及使用示例
Nov 25 #Python
搭建pypi私有仓库实现过程详解
Nov 25 #Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 25 #Python
python 实时调取摄像头的示例代码
Nov 25 #Python
You might like
PHP 数字左侧自动补0
2008/03/31 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
PHP新手用的Insert和Update语句构造类
2012/03/31 PHP
基于PHP开发中的安全防范知识详解
2013/06/06 PHP
PHP微商城开源代码实例
2019/03/27 PHP
javascript 写类方式之九
2009/07/05 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
python里运用私有属性和方法总结
2019/07/08 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
股权投资意向书
2014/04/01 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
某某同志考察材料
2014/05/28 职场文书
技术股份合作协议书
2014/10/05 职场文书
创业计划书之家教托管
2019/09/25 职场文书