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 相关文章推荐
Python3中多线程编程的队列运作示例
Apr 16 Python
Python中random模块用法实例分析
May 19 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
Python中的错误和异常处理简单操作示例【try-except用法】
Jul 25 Python
Python实现求两个csv文件交集的方法
Sep 06 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
带你学习Python如何实现回归树模型
Jul 16 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访问数组最后一个元素的函数end()用法
2015/03/18 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
Vue运用transition实现过渡动画
2019/05/06 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
Python实现程序的单一实例用法分析
2015/06/03 Python
Python WSGI的深入理解
2018/08/01 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
python SocketServer源码深入解读
2019/09/17 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
为什么说python适合写爬虫
2020/06/11 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
大学生创业感言
2014/01/25 职场文书
主管会计岗位职责
2014/03/13 职场文书
学生个人自我鉴定
2014/03/26 职场文书
大学团日活动总结书
2015/05/11 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP