setupteardown是用来处理用例的开始前工作和结束后的工作,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相关推荐

  1. Python测试框架pytest(03)setup和teardown

    Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 ​​​​​​Python测试框架pytest(02)Py ...

  2. Pytest测试框架中,setup和teardown函数的作用及使用方法

    作为一名Python开发人员,您一定知道Pytest是一个广泛使用的Python测试框架. 它具有易用性和灵活性,可以帮助您快速编写测试用例,并且能够支持包括单元测试.集成测试.功能测试等多种测试类型 ...

  3. setup和teardown详解【pytest系列 3】

    1.pytest中的前置处理和后置处理 模块级别 setup_module 整个.py模块开始执行前,执行一次(全程只一次) teardown_module 整个.py模块结束后,执行一次(全程只一次 ...

  4. pytest测试框架系列 - setup和teardown的详细讲解

    简介 前面使用过unittest的都知道,setup和teardown是用来处理用例的前置工作和清理工作,其中还有setupclass和teardownclass是保证执行所以的用例都只执行1次前置和 ...

  5. Pytest测试用例之setup与teardown方法(一)

    学过unittest框架的大家都知道里面 [前置/后置setup/teardown ]非常好,用来写一些每个case执行前都需要执行的公用代码 [ 作用:在每次用例开始前和结束后都去执行一次 例如我们 ...

  6. python pytest setupclass_简单了解pytest测试框架setup和tearDown

    pytest的setup与teardown 1)pytest提供了两套互相独立的setup 与 teardown和一对相对自由的setup与teardown 2)模块级与函数级 模块级(setup_m ...

  7. python:pytest中的setup和teardown

    原文:https://www.cnblogs.com/peiminer/p/9376352.html 之前我写的unittest的setup和teardown,还有setupClass和teardow ...

  8. Pytest自动化脚本中各个层级的setup和teardown的执行流程和使用方法

    [原文链接]Pytest自动化脚本中各个层级的setup和teardown的执行流程和使用方法 文章目录 一.自动化脚本组成简介 二.测试类中的各个层级的setup和teardown 三.测试文件中各 ...

  9. 【pytest】三、pytest用例管理框架的前后置(固件、夹具)setup和teardown,及封装

    一.引言: 1)setup的作用:用来实现执行前的一些初始化操作(如:数据准备.连接设备.打开APP/浏览器.创建日志对象.创建数据库连接.创建接口的请求对象等操作): 2)teardown的作用:用 ...

最新文章

  1. 帧编码 场编码_去年,我帮助举办了40场编码活动。 这是我学到的。
  2. 微软对学生免费提供Visual Studio等开发软件(包括中国)
  3. linux shell ascii 字符 转换
  4. 爬虫 - POJ题目信息
  5. TCP与UDP在socket编程中的区别
  6. HDU - 1394 Minimum Inversion Number(树状数组)
  7. Allegro padstack
  8. java 堆排序方式_幾種排序方式的java實現(02:希爾排序,歸並排序,堆排序)
  9. git的简单操作指令
  10. 基于Netty自己动手实现Web框架
  11. 【Morgan Stanley IKM在线测试】C++
  12. Linux操作系统——vi文本编辑器
  13. php创建留言板,PHP开发留言板教程之创建数据库
  14. 大数据论文_02_MapReduce(个人总结)
  15. WMware安装win10
  16. excel分列 excel按列分为多个工作簿或者excel文件
  17. 转载tangl_99的Servlet 实现文件上传下载--自己的一点心得
  18. 树莓派开发笔记(九):基于CSI口的摄像头拍照程序(同样适用USB摄像头)
  19. 苹果的黑科技:如何让按不动的触控板产生点按的感觉
  20. Http和Https详解,以及get与post的区别

热门文章

  1. 做生意赚钱的方法无非是开源节流
  2. html如何滚动闪烁,ActiveX flicker ,ActiveX控件闪烁,在html中,只要有滚动条,一滚动就闪烁...
  3. javascript 常用的时间函数
  4. 我从不使用的6种手机配件!有可能会损坏手机不说,还让我白花钱
  5. Python爬虫教程-00-写在前面
  6. 运动蓝牙耳机哪个好,运动蓝牙耳机推荐
  7. 文心一言,中文版AI正在崛起吗?
  8. node安装报错及解决方法
  9. 出现依赖关系时用aptitude也无法解决的方法
  10. Java内部类详解(含:成员内部类、局部内部类、匿名内部类、静态内部类)