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正则表达式match和search用法实例
Mar 26 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
Python3中的json模块使用详解
May 05 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
python实现猜拳小游戏
Apr 05 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
Jun 18 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
pycharm 的Structure界面设置操作
Feb 05 Python
pytorch--之halfTensor的使用详解
May 24 Python
用 Python 定义 Schema 并生成 Parquet 文件详情
Sep 25 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备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
php一个找二层目录的小东东
2012/08/02 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
php图片上传类 附调用方法
2016/05/15 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
vue+layui实现select动态加载后台数据的例子
2019/09/20 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
python实现人人网登录示例分享
2014/01/19 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
Python异常处理知识点总结
2019/02/18 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
安全教育月活动总结
2014/05/05 职场文书
师范类求职信
2014/06/21 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
感动中国何玥观后感
2015/06/02 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android
Python内置数据结构列表与元组示例详解
2021/08/04 Python
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python