Unittest(1):unittest单元测试框架简介setup前置初始化和teardown后置操作

news2025/1/9 16:37:20

unittest单元测试框架简介

unittest是python内置的单元测试框架,具备编写用例、组 织用例、执行用例、功能,可以结合selenium进行UI自动化测 试,也可以结合appium、requests等模块做其它自动化测试

官方文档:https://docs.python.org/3/library/unittest.html

使用unittest前需要熟悉该框架的五个概念

test_case :一个完整的测试单元,执行该测试单元可以完成对某一个问题的验证,完整体现在测试前环境准备(setUp),执行测试代码(run),以及测试后环境还原(tearDown);

test_suite :多个测试用例的集合,测试套件或测试计划

testLoader :加载TestCase到TestSuite中的,其中loadTestsFromName()方法用于寻找TestCase,并创建它们的实例,然后添加到TestSuite中,返回TestSuite实例;

test_runner:执行测试用例,并将测试结果保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息;

test_fixture:一个测试用例的初始化准备及环境还原,主要是setUp() 和setDown()方法

unittest基本使用步骤:

a) 用import语句引入unittest模块

b) 让所有执行测试的类都继承于TestCase类,可以将TestCase看成是对特定类进行测试的方法的集合

c) setUp()方法中进行测试前的初始化工作,teardown()方法中执行测试后的清除工作,它们都是TestCase中的方法

d) 编写测试的方法最好以test开头(可以直接运行) def test_add(self) 、def test_sub(self)等,可以编写多个测试用例对被测对象进行测试

e) 在编写测试方法过程中,使用TestCase class提供的方法测试功能点,比如:assertEqual断言等

f) 调用unittest.main()方法运行所有以test开头的方

setup前置初始化和teardown后置操作

针对类中每个函数执行时进行前置后置的操作

 setUp(self):测试前的初始化操作

tearDown(self):测试后的操作

代码示例:

import unittest  # 导入unittest模块
 
class test_case(unittest.TestCase):  # 集成TestCase类
 
    def setUp(self):
        print("我是setUp方法,进行测试前的初始化工作")
    def tearDown(self) -> None:  # 表示该方法没有返回值
        print("我是tearDown方法,执行测试后的清除工作")
 
    # 必须以test开头的测试方法才能被执行
    def test_aaa(self):
        print("我是case: test_aaa")
    def test_bbb(self):
        print("我是case: test_bbb")
    def test_ccc(self):
        print("我是case: test_ccc")
 
 
if __name__ == '__main__':
    unittest.main()

针对整个类进行前置后置的操作

 setUpClass(cls):测试前的初始化操作

tearDownClass(cls):测试后的操作

import unittest
 
 
class TestCase(unittest.TestCase):
 
    @classmethod
    def setUpClass(cls) -> None:
        print('setUpClass')
 
    @classmethod
    def tearDownClass(cls) -> None:
        print('tearDownClass')
 
    def setUp(self) -> None:
        print('setUp')
 
    def tearDown(self) -> None:
        print('tearDown')
 
    def test_01(self):
        print('test_01')
 
    def test_02(self):
        print('test_02')
 
 
if __name__ == '__main__':
    unittest.main()

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

opencv 图像边框

cv.copyMakeBorder() 图像设置边框或者填充

HarmonyOs 4 (一) 认识HarmonyOs

目录 一 HarmonyOs 背景1.1 发展时间线1.2 背景分析1.2.1 新场景1.2.2 新挑战1.2.3 鸿蒙生态迎接挑战 二 HarmonyOS简介2.1 OpenHarmony2.2 HarmonyOS Connect2.3 HarmonyOS Next**2.4 ArkTS (重点掌握)****2.5 ArkUI** 三 鸿蒙生态应用核心技术理念**3.…

c/c++概念辨析-指针常量常量指针、指针函数函数指针、指针数组数组指针

概念澄清: 统一规则: 不管是XX指针,还是指针XX,后者是本体,前者只是个定语,前者也可以替换为其他同类(例如字符串),帮助理解。 XX指针: 可简单理解为&#…

骨传导耳机是智商税吗?骨传导耳机是利用什么原理听歌?

骨传导耳机并非智商税,而是一种新兴的技术产品。作为是一种新型的听音设备,它采用了与传统耳机不同的工作原理,通过将声音通过骨骼传导到内耳,实现了不用堵塞耳道就能听到声音的效果。相比传统耳机,骨传导耳机具有一些…

mac本地部署stable-diffusion

下载Homebrew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" ①输入“1”选择中科大版本,然后输入Y(YES),直接输入开机密码(不显示)然后回车确认,开始下载 ②…

matlab 基于卡尔曼滤波的GPS-INS的数据融合的导航

1、内容简介 略 25-可以交流、咨询、答疑 2、内容说明 基于卡尔曼滤波的GPS-INS的数据融合的导航 "基于卡尔曼滤波的GPS-INS的数据融合的导航 基于卡尔曼滤波实现GPS-INS组合导航系统" 卡尔曼滤波、GPS、INS、数据融合、导航 3、仿真分析 4、参考论文 略 …

Linux基本指令(后篇)

目录 14.时间指令date 15.Cal指令 16.find指令(非常重要) 17.grep指令 18.打包压缩指令zip和tar以及解压指令unzip和tar 14.时间指令date date(显示当前时间) 1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中…

带头结点的双向循环链表

目录 带头结点的双向循环链表 1.存储定义 2.结点的创建 3.结点的初始化 4.尾插结点 5.尾删结点 6.头插结点 7.头删结点 8.查找并返回结点 9.在pos结点前插入结点 10.删除pos结点 11.打印链表 12.销毁链表 13.头插结点2.0版 14.尾插结点2.0版 前言: 当…

Mac右键添加通过VSCode打开

Mac右键添加通过VSCode打开 1 首先打开自动操作 进入方式 访达 – 应用程序 – 自动操作 2. 选择快速操作 3. 添加 最后 commands保存,可以输入自定义的名称 for f in "$" doopen -a "Visual Studio Code" "$f" done4. 找到保存的快…

SpringBoot+mysql+vue实现大学生健康档案管理系统前后端分离

一、项目简介 本项目是一套基于SpringBoot实现大学生健康档案管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试&#…

Java项目学生管理系统三添加学生

​ 欢迎来到本篇博客,昨天我们学习的是查询所有,今天我们将探索一个令人兴奋的话题——Java项目学生管理系统的学生添加功能。作为一个学生管理系统的关键功能之一,学生添加模块扮演着连接教育工作者与学生信息的桥梁。通过本文,我…

视频后期特效处理软件 Motion 5 mac中文版

Motion mac是一款运动图形和视频合成软件,适用于Mac OS平台。 Motion mac软件特点 - 精美的效果:Motion提供了多种高质量的运动图形和视频效果,例如3D效果、烟雾效果、粒子效果等,方便用户制作出丰富多彩的视频和动画。 - 高效的工…

还得是字节出来的,太秀了...

前段时间公司缺人,也面了许多测试,一开始瞄准的就是中级水准,当然也没指望能来大牛,提供的薪资在15-20k这个范围,来面试的人有很多,但是平均水平真的让人很失望。看了简历很多上面都是写有4年工作经验&…

(二)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)

一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、Tiki-taka算法(TTA&#xf…

zookeeper分布式先进先出队列 (实操课程)

本系列是zookeeper相关的实操课程,课程测试环环相扣,请按照顺序阅读来学习和测试zookeeper。 阅读本文之前,请先阅读----​​​​​​zookeeper 单机伪集群搭建简单记录(实操课程系列)zookeeper 客户端常用命令简单记录…

鸿蒙开发笔记

最近比较火,本身也是做前端的,就抽空学习了下。对前端很友好 原视频地址:黑马b站鸿蒙OS视频 下载安装跟着视频或者文档就可以了。如果你电脑上安装的有node,但是开发工具显示你没安装,不用动咱们的node,直…

高效复习的打印神器,学习好助手工作好搭档,咕咕机T1错题打印机上手

日常工作和学习的时候,经常需要打印很多电子表格和文档,但是手边不一定有打印机,对于在家或宿舍学习的学生来说更是如此,不过市面上常见的打印机需要墨盒、硒鼓等配件,使用成本高且不方便操作。那么有没有一款快捷易用…

智慧箱变监控系统

智慧箱变监控系统是一种先进的监控解决方案,依托电易云-智慧电力物联网,旨在实现对箱式变电站(简称“箱变”)的智能化、远程化监控和管理。以下是智慧箱变监控系统的主要功能和优势: 实时监测:通过传感器和…

ChatGPT一周年,奥特曼官宣 OpenAI 新动作!

大家好,我是二狗。 今天是11月30日,一转眼,ChatGPT 发布已经一周年了! 而就在刚刚,ChatGPT一周年之际。 OpenAI 正式宣布Sam Altman回归重任CEO, Mira Murati 重任CTO,Greg Brockman重任总裁,O…

公共字段自动填充

1.自定义注解,用于表示需要进行公共字段自动填充的方法 OperationType枚举类 自定义切面类 通过反射为属性赋值