pytest用例运行级别:
●模块级(setup_module/teardown_module)开始于模块始末,全局的
●函数级(setup_function/teardown_function)只对函数用例生效
●类级(setup_class/teardown_class)只在类中前后运行一次(在类中生效,类外不生效)
●方法级(setup_method/teardown_method)开始于方法始末(在类中生效,类外不生效)
●类里面的(setup/teardown)运行在调用方法的前后(类中生效、类外有函数时生效)

函数级:

函数前置setup_function和后置teardown_function,放类中无效,放类外且类外有函数用例时才生效,每个用例开始前和结束后各调用一次,调用多次

import pytest
def setup_function():print("setup_function:每个用例开始前都会执行")
def teardown_function():print("teardown_function:每个用例结束后都会执行")
def test_one():print("正在执行---test_one")
def test_two():print("正在执行---test_two")
def login():print("正在执行---test_two")
if __name__ == "__main__":pytest.main(["-s","test02.py"])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py
============================= test session starts =============================
platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0
rootdir: C:\Users\wangli\PycharmProjects\Test\Test
collected 2 itemstest02.py setup_function:每个用例开始前都会执行
正在执行---test_one
.teardown_function:每个用例结束后都会执行
setup_function:每个用例开始前都会执行
正在执行---test_two
.teardown_function:每个用例结束后都会执行============================== 2 passed in 0.14s ==============================Process finished with exit code 0

模块前置setup_module和后置teardown_module,放类中无效,放类外且类外有函数用例或类内有函数用例时才生效,整个.py模块开始前和结束后各调用一次

import pytest
def setup_module():print("setup_module:整个.py模块开始执行一次")
def teardown_module():print("teardown_module:整个.py模块结束执行一次")
def setup_function():print("setup_function:每个用例开始前都会执行")
def teardown_function():print("teardown_function:每个用例结束后都会执行")
def test_one():print("正在执行---test_one")
def test_two():print("正在执行---test_two")
def login_test():print("正在执行---test_two")
if __name__ == "__main__":pytest.main(["-s","test02.py"])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py
============================= test session starts =============================
platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0
rootdir: C:\Users\wangli\PycharmProjects\Test\Test
collected 2 itemstest02.py setup_module:整个.py模块开始执行一次
setup_function:每个用例开始前都会执行
正在执行---test_one
.teardown_function:每个用例结束后都会执行
setup_function:每个用例开始前都会执行
正在执行---test_two
.teardown_function:每个用例结束后都会执行
teardown_module:整个.py模块结束执行一次============================== 2 passed in 0.08s ==============================Process finished with exit code 0

类级:

类前置setup_class和后置teardown_class,放类外无效,放类内且类内有函数用例时才生效,类开始前和结束后各执行一次(方法级,调用1次)

方法前置setup_method和后置teardown_method,放类外无效,放类内且类内有函数用例时才生效,每个用例开始前和结束后调用1次(方法级,调用多次)

类里面前置setup和后置teardown,放类内(类内有用例)和类外(有用例)都生效,每个用例开始前和结束后调用1次(函数、方法级,调用多次)

setup_class:所有用例执行之前(类级)

setup_method:每个用例开始前执行(方法级)
setup:每个用例开始前执行(调用方法前)
正在执行---test_one
.teardown:每个用例结束后执行(调用方法后)
teardown_method:每个用例结束后执行(方法级)

setup_method:每个用例开始前执行(方法级)
setup:每个用例开始前执行(调用方法前)
正在执行---test_two
.teardown:每个用例结束后执行(调用方法后)
teardown_method:每个用例结束后执行(方法级)

teardown_class:所有用例执行之后(类级)

import pytestclass Test():def setup(self):print("setup:每个用例开始前执行(调用方法前)")def teardown(self):print("teardown:每个用例结束后执行(调用方法后)")def setup_class(self):print("setup_class:所有用例执行之前(类级)")def teardown_class(self):print("teardown_class:所有用例执行之后(类级)")def setup_method(self):print("setup_method:每个用例开始前执行(方法级)")def teardown_method(self):print("teardown_method:每个用例结束后执行(方法级)")def test_one(self):print("正在执行---test_one")def test_two(self):print("正在执行---test_two")def login_test(self):print("正在执行---test_two")if __name__ == "__main__":pytest.main(["-s","test02.py"])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py
============================= test session starts =============================
platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0
rootdir: C:\Users\wangli\PycharmProjects\Test\Test
collected 2 itemstest02.py setup_class:所有用例执行之前(类级)
setup_method:每个用例开始前执行(方法级)
setup:每个用例开始前执行(调用方法前)
正在执行---test_one
.teardown:每个用例结束后执行(调用方法后)
teardown_method:每个用例结束后执行(方法级)
setup_method:每个用例开始前执行(方法级)
setup:每个用例开始前执行(调用方法前)
正在执行---test_two
.teardown:每个用例结束后执行(调用方法后)
teardown_method:每个用例结束后执行(方法级)
teardown_class:所有用例执行之后(类级)============================== 2 passed in 0.21s ==============================Process finished with exit code 0

类与函数混合:

setup_module和teardown_module优先级最大

import pytest
def setup_module():print("——setup_module:整个.py模块开始执行一次【函数】")
def teardown_module():print("——teardown_module:整个.py模块结束执行一次【函数】")
def setup_function():print("====setup_function:每个用例开始前都会执行【函数】")
def teardown_function():print("====teardown_function:每个用例结束后都会执行【函数】")
def test_one():print("正在执行---test_one【函数】")
def test_two():print("正在执行---test_two【函数】")
def setup():print("@@@@@setup:每个用例开始前执行(调用方法前)【函数】")
def teardown():print("@@@@@teardown:每个用例结束后执行(调用方法后)【函数】")
class Test():def setup(self):print("setup:每个用例开始前执行(调用方法前)")def teardown(self):print("teardown:每个用例结束后执行(调用方法后)")def setup_class(self):print("setup_class:所有用例执行之前(类级)")def teardown_class(self):print("teardown_class:所有用例执行之后(类级)")def setup_method(self):print("setup_method:每个用例开始前执行(方法级)")def teardown_method(self):print("teardown_method:每个用例结束后执行(方法级)")def test_three(self):print("正在执行---test_one")def test_four(self):print("正在执行---test_two")
if __name__ == "__main__":pytest.main(["-s","test02.py"])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py
============================= test session starts =============================
platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0
rootdir: C:\Users\wangli\PycharmProjects\Test\Test
collected 4 itemstest02.py ——setup_module:整个.py模块开始执行一次【函数】
====setup_function:每个用例开始前都会执行【函数】
@@@@@setup:每个用例开始前执行(调用方法前)【函数】
正在执行---test_one【函数】
.@@@@@teardown:每个用例结束后执行(调用方法后)【函数】
====teardown_function:每个用例结束后都会执行【函数】
====setup_function:每个用例开始前都会执行【函数】
@@@@@setup:每个用例开始前执行(调用方法前)【函数】
正在执行---test_two【函数】
.@@@@@teardown:每个用例结束后执行(调用方法后)【函数】
====teardown_function:每个用例结束后都会执行【函数】
setup_class:所有用例执行之前(类级)
setup_method:每个用例开始前执行(方法级)
setup:每个用例开始前执行(调用方法前)
正在执行---test_one
.teardown:每个用例结束后执行(调用方法后)
teardown_method:每个用例结束后执行(方法级)
setup_method:每个用例开始前执行(方法级)
setup:每个用例开始前执行(调用方法前)
正在执行---test_two
.teardown:每个用例结束后执行(调用方法后)
teardown_method:每个用例结束后执行(方法级)
teardown_class:所有用例执行之后(类级)
——teardown_module:整个.py模块结束执行一次【函数】============================== 4 passed in 0.04s ==============================Process finished with exit code 0

Python Pytest前置setup和后置teardown详解相关推荐

  1. Spring AOP中的前置通知和后置通知详解

    不同版本的spring对AOP的支持有所不同,spring2.0之前,它主要针对不同类型的拦截器使用XML配置文件通过代理来实现.而spring2.0之后,它可以使用JDK5的注解来完成AOP的实现, ...

  2. pytest中前置setup和后置teardown的使用方法

    前言 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次. 当然还有更高级一点的setupClass和teardownClass,需 ...

  3. Python unittest中初始化固件setUp和销毁固件tearDown详解

    unittest.TestCase 包含了 setUp() 和 tearDown() 两个方法,其中 setUp() 方法用于初始化测试固件:而 tearDown() 方法用于销毁测试固件.程序会在运 ...

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

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

  5. C++中前置操作符和后置操作符的重载

    文章目录 1 C++中前置操作符和后置操作符的重载 1.1 前置操作符和后置操作符的原生语义 1.2 ++操作符的重载 1.3 前置++和后置++的真正区别 1 C++中前置操作符和后置操作符的重载 ...

  6. HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试

    为什么80%的码农都做不了架构师?>>>    但是navigator.getUserMediau已经从 Web 标准中删除,虽然部分浏览器可以使用,生产环境中还是要做好兼容.新的A ...

  7. thinkPHP 空模块和空操作、前置操作和后置操作 具体介绍(十四)

    本章节:介绍 TP 空模块和空操作.前置操作和后置操作 具体介绍 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name ...

  8. 【C++深度剖析教程19】前置操作符与后置操作符

    今天来学习C++中的前置操作符(++i)与后置操作符(i++). 一回顾 以前在C语言的理论课程中,我们就学过,前置和后置操作符,有一定的区别: 但是我们可以看到下图,发现前置和后置++的操作符所对应 ...

  9. html5 android6.0摄像头,HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试...

    但是navigator.getUserMediau已经从 Web 标准中删除,虽然部分浏览器可以使用,生产环境中还是要做好兼容.新的API更替为MediaDevices.getUserMedia.Me ...

最新文章

  1. c语言指向常量的指针和常量指针
  2. 需求分析挑战之旅——疯狂的订餐系统
  3. 【FFMPEG源码终极解析】 av_packet_alloc 与 av_packet_free
  4. 3D模型格式解析(OBJ)
  5. MySQL (13)---查询数据
  6. SpringCloud学习笔记023---SpringBoot集成Dubbo_依赖zookeeper实现分布式应用一致性以及远程服务调用
  7. 【数字信号】基于matlab GUI DTMF信号生成与检测(带按键音)【含Matlab源码 1086期】
  8. Raspberry Pi (树莓派) 安装 vim 编辑器
  9. 栅栏密码解密——Java实现
  10. 基于深度学习的图像匹配技术一览
  11. 电商 竞品分析_电商竞品分析
  12. 人民币大写数字 C++
  13. Cisco Packet Tracer中配置单区域OSPF
  14. 乡愁 - 怀念老者余光中
  15. python等于号怎么输入_python 中不等于怎么表示
  16. 备份恢复Lesson 06.Performing Backups
  17. 远程DNS缓存攻击__网络攻防实验三
  18. 温水煮青蛙,我还能活多久
  19. matlab空值NaN填充
  20. hive-学习汽车销售分析

热门文章

  1. 计算机仿真在电力领域的应用,仿真技术在电力系统中的应用实例
  2. html文件怎么导出stl文件,3D建模软件导出STL文件的小技巧(一)
  3. postman 使用_Postman使用方法
  4. linux 网络io命令详解,Linux下五种网络IO模型详解
  5. python3 collections模块 tree_第30天: Python collections 模块
  6. file获取文件后缀_Python 工匠:高效操作文件的三个建议
  7. 腐蚀国内稳定服务器_工控机箱和服务器机箱区别在哪里
  8. php网站建设实训引言_网站建设实训报告
  9. orderd mysql_Oracle入门教程:leading vs ordered hint
  10. php代理m3u8,PHP实现m3u8并发下载