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 列表排序方法reverse、sort、sorted详解
Jan 22 Python
python3 模拟登录v2ex实例讲解
Jul 13 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
Python3实现的简单验证码识别功能示例
May 02 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
学习python可以干什么
Feb 26 Python
详解用Python练习画个美队盾牌
Mar 23 Python
wxPython色环电阻计算器
Nov 18 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 Python
Python应用实现处理excel数据过程解析
Jun 19 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
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
js 开发之autocomplete="off"在chrom中失效的解决办法
2017/09/28 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
python 实时遍历日志文件
2016/04/12 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
python爬虫---requests库的用法详解
2020/09/28 Python
如何写出好的Java代码
2014/04/25 面试题
自我评价正确写法范文
2013/12/10 职场文书
网上签名寄语活动留言
2014/01/18 职场文书
网络工程师职业规划
2014/02/10 职场文书
校庆口号
2014/06/20 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
sql中mod()函数取余数的用法
2021/05/29 SQL Server
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers