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每隔N秒运行指定函数的方法
Mar 16 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
python使用tkinter实现简单计算器
Jan 30 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
python pandas模块基础学习详解
Jul 03 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
python如何获取apk的packagename和activity
Jan 10 Python
Python标准库itertools的使用方法
Jan 17 Python
解决python图像处理图像赋值后变为白色的问题
Jun 04 Python
Pandas把dataframe或series转换成list的方法
Jun 14 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
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
js下获取div中的数据的原理分析
2010/04/07 Javascript
清空上传控件input file的值
2010/07/03 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
深入Python函数编程的一些特性
2015/04/13 Python
Python实现多线程的两种方式分析
2018/08/29 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
印度网上药店:1mg
2017/10/13 全球购物
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
你们项目是如何进行变更控制的
2015/08/26 面试题
公司成立感言
2014/01/11 职场文书
企业文化标语口号
2014/06/09 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript