pytest系列教程——3、setup和teardown
setup
和teardown
是用来处理用例的开始前工作和结束后的工作,pytest提供了多种类型的前置和后置,其中包括:
- setup_module / teardown_module
- setup_function / teardown_function
- setup_class / teardown_class
- setup_method / teardown_method
- setup / teardown
代码解析
import pytestdef setup():print("[->]setup 类外前置")print("类外的setup,在所有的类外函数执行前执行\n")def teardown():print("[->]teardown 类外后置")print("类外的teardown,在所有的类外函数执行后执行\n")def setup_function():print("[->]setup_function")print("只对函数用例(不在class里面的)生效,有多少条函数用例执行多少次前置\n")def teardown_function():print("[->]teardown_function")print("只对函数用例(不在class里面的)生效,有多少条函数用例执行多少次后置\n")def setup_module():print("[->]setup_module")print("最先执行的前置,且在整个 *.py 文件执行时只执行一次\n")def teardown_module():print("[->]teardown_module")print("最后执行的后置,且在整个 *.py 文件执行时只执行一次\n")def test_add_01():print("执行类外用例test_add_01")assert 1+1 == 2def test_add_02():print("执行类外用例test_add_02")assert 2+2 == 4class TestAdd():def setup(self):print("[->]setup 类中前置")print("类中的setup,在所有的类外函数执行前执行\n")def teardown(self):print("[->]teardown 类中后置")print("类中的teardown,在所有的类外函数执行前执行\n")def setup_class(self):print("[->]setup_class")print("在类中运行的前置,只运行一次")def teardown_class(self):print("[->]teardown_class")print("在类中运行的后置,只运行一次")def setup_method(self):print("[->]setup_method")print("在类中每条case前运行的前置,每条case分别运行一次")def teardown_method(self):print("[->]teardown_method")print("在类中每条case后运行的后置,每条case分别运行一次")def test_add_03(self):print("执行类中用例test_add_03")assert 3+3 == 6def test_add_04(self):print("执行类中用例test_add_04")assert 4+4 == 8if __name__ == "__main__":pytest.main(['-s', 'MyPytest.py'])
运行结果:
collected 4 itemsMyPytest.py [->]setup_module
最先执行的前置,且在整个 *.py 文件执行时只执行一次[->]setup_function
只对函数用例(不在class里面的)生效,有多少条函数用例执行多少次前置[->]setup 类外前置
类外的setup,在所有的类外函数执行前执行执行类外用例test_add_01
.[->]teardown 类外后置
类外的teardown,在所有的类外函数执行后执行[->]teardown_function
只对函数用例(不在class里面的)生效,有多少条函数用例执行多少次后置[->]setup_function
只对函数用例(不在class里面的)生效,有多少条函数用例执行多少次前置[->]setup 类外前置
类外的setup,在所有的类外函数执行前执行执行类外用例test_add_02
.[->]teardown 类外后置
类外的teardown,在所有的类外函数执行后执行[->]teardown_function
只对函数用例(不在class里面的)生效,有多少条函数用例执行多少次后置[->]setup_class
在类中运行的前置,只运行一次
[->]setup_method
在类中每条case前运行的前置,每条case分别运行一次
[->]setup 类中前置
类中的setup,在所有的类外函数执行前执行执行类中用例test_add_03
.[->]teardown 类中后置
类中的teardown,在所有的类外函数执行前执行[->]teardown_method
在类中每条case后运行的后置,每条case分别运行一次
[->]setup_method
在类中每条case前运行的前置,每条case分别运行一次
[->]setup 类中前置
类中的setup,在所有的类外函数执行前执行执行类中用例test_add_04
.[->]teardown 类中后置
类中的teardown,在所有的类外函数执行前执行[->]teardown_method
在类中每条case后运行的后置,每条case分别运行一次
[->]teardown_class
在类中运行的后置,只运行一次
[->]teardown_module
最后执行的后置,且在整个 *.py 文件执行时只执行一次============================== 4 passed in 0.07s ==============================***Repl Closed***
执行顺序
通过上述执行发现类中的执行顺序优先级:
setup_class > setup_method > setup
类外的执行顺序:
setup_module > setup_function > setup
对应的teardown反之,遵循先进后出的原则
前置\后置执行结论
前置 | 后置 | 作用 |
---|---|---|
setup_module | teardown_module | 最先执行的前置或者后置,且在整个 *.py 文件执行时只执行一次 |
setup_function | teardown_function | 只对函数用例(不在class里面的)生效,有多少条函数用例执行多少次 |
setup_class | teardown_class | 在类中运行的前置或者后置,只运行一次 |
setup_method | teardown_method | 在类中每条用例前后运行的前置或后置,每条case分别运行一次 |
setup | teardown | 既可以在类中运行,也可以在类外运行,每条用例前后分别执行一次 |
pytest系列教程——3、setup和teardown相关推荐
- Python测试框架pytest(03)setup和teardown
Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 Python测试框架pytest(02)Py ...
- Pytest测试框架中,setup和teardown函数的作用及使用方法
作为一名Python开发人员,您一定知道Pytest是一个广泛使用的Python测试框架. 它具有易用性和灵活性,可以帮助您快速编写测试用例,并且能够支持包括单元测试.集成测试.功能测试等多种测试类型 ...
- setup和teardown详解【pytest系列 3】
1.pytest中的前置处理和后置处理 模块级别 setup_module 整个.py模块开始执行前,执行一次(全程只一次) teardown_module 整个.py模块结束后,执行一次(全程只一次 ...
- pytest测试框架系列 - setup和teardown的详细讲解
简介 前面使用过unittest的都知道,setup和teardown是用来处理用例的前置工作和清理工作,其中还有setupclass和teardownclass是保证执行所以的用例都只执行1次前置和 ...
- Pytest测试用例之setup与teardown方法(一)
学过unittest框架的大家都知道里面 [前置/后置setup/teardown ]非常好,用来写一些每个case执行前都需要执行的公用代码 [ 作用:在每次用例开始前和结束后都去执行一次 例如我们 ...
- python pytest setupclass_简单了解pytest测试框架setup和tearDown
pytest的setup与teardown 1)pytest提供了两套互相独立的setup 与 teardown和一对相对自由的setup与teardown 2)模块级与函数级 模块级(setup_m ...
- python:pytest中的setup和teardown
原文:https://www.cnblogs.com/peiminer/p/9376352.html 之前我写的unittest的setup和teardown,还有setupClass和teardow ...
- Pytest自动化脚本中各个层级的setup和teardown的执行流程和使用方法
[原文链接]Pytest自动化脚本中各个层级的setup和teardown的执行流程和使用方法 文章目录 一.自动化脚本组成简介 二.测试类中的各个层级的setup和teardown 三.测试文件中各 ...
- 【pytest】三、pytest用例管理框架的前后置(固件、夹具)setup和teardown,及封装
一.引言: 1)setup的作用:用来实现执行前的一些初始化操作(如:数据准备.连接设备.打开APP/浏览器.创建日志对象.创建数据库连接.创建接口的请求对象等操作): 2)teardown的作用:用 ...
最新文章
- 帧编码 场编码_去年,我帮助举办了40场编码活动。 这是我学到的。
- 微软对学生免费提供Visual Studio等开发软件(包括中国)
- linux shell ascii 字符 转换
- 爬虫 - POJ题目信息
- TCP与UDP在socket编程中的区别
- HDU - 1394 Minimum Inversion Number(树状数组)
- Allegro padstack
- java 堆排序方式_幾種排序方式的java實現(02:希爾排序,歸並排序,堆排序)
- git的简单操作指令
- 基于Netty自己动手实现Web框架
- 【Morgan Stanley IKM在线测试】C++
- Linux操作系统——vi文本编辑器
- php创建留言板,PHP开发留言板教程之创建数据库
- 大数据论文_02_MapReduce(个人总结)
- WMware安装win10
- excel分列 excel按列分为多个工作簿或者excel文件
- 转载tangl_99的Servlet 实现文件上传下载--自己的一点心得
- 树莓派开发笔记(九):基于CSI口的摄像头拍照程序(同样适用USB摄像头)
- 苹果的黑科技:如何让按不动的触控板产生点按的感觉
- Http和Https详解,以及get与post的区别
热门文章
- 做生意赚钱的方法无非是开源节流
- html如何滚动闪烁,ActiveX flicker ,ActiveX控件闪烁,在html中,只要有滚动条,一滚动就闪烁...
- javascript 常用的时间函数
- 我从不使用的6种手机配件!有可能会损坏手机不说,还让我白花钱
- Python爬虫教程-00-写在前面
- 运动蓝牙耳机哪个好,运动蓝牙耳机推荐
- 文心一言,中文版AI正在崛起吗?
- node安装报错及解决方法
- 出现依赖关系时用aptitude也无法解决的方法
- Java内部类详解(含:成员内部类、局部内部类、匿名内部类、静态内部类)