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之Python安装
Sep 12 Python
Python对象体系深入分析
Oct 28 Python
python实现rsa加密实例详解
Jul 19 Python
Python实现的维尼吉亚密码算法示例
Apr 12 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
python logging日志模块原理及操作解析
Oct 12 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
Pandas数据分析的一些常用小技巧
Feb 07 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 面向对象之成员方法详解
2013/05/04 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
PHP递归算法的简单实例
2019/02/28 PHP
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
js常见遍历操作小结
2019/06/06 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
Python装饰器的函数式编程详解
2015/02/27 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
python 中split 和 strip的实例详解
2017/07/12 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
法律专业推荐信范文
2013/11/29 职场文书
12月红领巾广播稿
2014/02/13 职场文书
参观接待方案
2014/03/17 职场文书
2015年领班工作总结
2015/04/29 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书