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之间的那些事
Jan 07 Python
python魔法方法-属性转换和类的表示详解
Jul 22 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
Python3实现取图片中特定的像素替换指定的颜色示例
Jan 24 Python
分享8个非常流行的 Python 可视化工具包
Jun 05 Python
在Django中实现添加user到group并查看
Nov 18 Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 Python
Python+kivy BoxLayout布局示例代码详解
Dec 28 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 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
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
win与linux系统中python requests 安装
2016/12/04 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
Python lambda表达式用法实例分析
2018/12/25 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
智利最大的网上商店:Linio智利
2016/11/24 全球购物
创建绿色社区汇报材料
2014/08/22 职场文书
卖房授权委托书样本
2014/10/05 职场文书
高中同学会致辞
2015/08/01 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
Python实现机器学习算法的分类
2021/06/03 Python