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中使用ConfigParser解析ini配置文件实例
Aug 30 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
CentOS7下安装python3.6.8的教程详解
Jan 03 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
Python用5行代码实现批量抠图的示例代码
Apr 14 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 Python
python OpenCV学习笔记
Mar 31 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
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
php内嵌函数用法实例
2015/03/20 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
centos6.4下python3.6.1安装教程
2017/07/21 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
Python使用Pygame绘制时钟
2020/11/29 Python
利用指针变量实现队列的入队操作
2012/04/07 面试题
params有什么用
2016/03/01 面试题
Python面试题集
2012/03/08 面试题
关于工作时间玩手机的检讨书
2014/09/18 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
修辞手法有哪些?
2019/08/29 职场文书
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js