文章目录
前言
pytest 中可以使用 setup 和 teardown 来实现前置和后置方法,同时也可以使用装饰器 Fixture 来实现。主要用来做数据准备或者数据清理使用。
使用 setup 和 teardown 实现
方法介绍
在 pytest 中使用 setup 和 teardown 可以实现三种级别的前置和后置,分别是 方法级别、类级别和模块级别。不过模块级别用的不多。
方法级别
每个测试方法执行前后都会执行的方法。方法前置在每个用例执行之前会先运行, 方法后置在每个用例执行结束后运行。
class TestDemo:
def setup(self): # 方法前置
pass
def teardown(self): # 方法后置
pass
类级别
测试类中所有测试方法执行前后都会执行的方法。方法前置在所有用例执行之前会先运行, 方法后置在所有用例执行结束后运行。
class TestDemo:
def setup_class(self): # 类前置
pass
def teardown_class(self): # 类后置
pass
模块级别
模块级别可以用在 不使用类定义的用例中。
如果不再类定义的用例中书写,模块级别的方法,会在所有用例执行之前调用 前置方法, 在所有用例执行结束后调用后置方法。
在使用类定义的用例中,需要将方法写在类的外部,不能在类中书写。
习惯性的代码书写是在一个模块中定义一个测试类,所以模块级别的基本不用, 如果书写了, 前置方法会在类级别前置之前执行, 后置方法会在类后置之后执行。
如果书写多个测试类,前置方法会在所有测试类之前执行,后置方法会在所有测试类执行结束后执行。
def setup_module(): # 模块前置
pass
def teardown_module(): # 模块后置
pass
整体案例
import pytest
def setup_module():
print('1. 模块级别前置 setup_module')
def teardown_module():
print<