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登录豆瓣并发帖的方法
Jul 08 Python
Python基于动态规划算法计算单词距离
Jul 25 Python
Python中操作符重载用法分析
Apr 29 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
详解supervisor使用教程
Nov 21 Python
浅谈python中requests模块导入的问题
May 18 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
Python 点击指定位置验证码破解的实现代码
Sep 11 Python
Django异步任务线程池实现原理
Dec 17 Python
Python计算机视觉里的IOU计算实例
Jan 17 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 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校验ISBN码的函数代码
2011/01/17 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
javascript下数值型比较难点说明
2010/06/07 Javascript
jquery tab插件精简版分享
2011/09/10 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
使用python装饰器验证配置文件示例
2014/02/24 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
python实现图片彩色转化为素描
2019/01/15 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
python装饰器代码深入讲解
2021/03/01 Python
2014年行政助理工作总结
2014/11/19 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
护理培训心得体会
2016/01/22 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python