1、方法级别初始化、清除
- pytest 中的 setup 和 teardown
- 在每个方法执行前后都会执行一次
- 固定函数名称如下(函数名称不能写错)
def setup(self): print("setup_function--->") def teardown(self): print("teardown_function--->")
def setup_method(cls): print("setup_function--->") def teardown_method(cls): print("teardown_function--->")
- 实例如下
import pytest class Test(): def setup(self): print("setup_function--->") def teardown(self): print("teardown_function--->") def test_01(self): print("深圳多测师") def test_02(self): print("广州多测师") def test_03(self): print("上海多测师") if __name__ == '__main__': pytest.main(["-s","test_demo1.py"]) # 结果如下 test_demo1.py setup_function---> 深圳多测师 .teardown_function---> setup_function---> 广州多测师 .teardown_function---> setup_function---> 上海多测师 .teardown_function--->
2、模块级别初始化、清除
- 分别在整个模块中所有类中的内容执行前后运行setup_module和teardown_module
- 设置全局方法 def setup_module() 和 def teardown_module()
# 定义全局方法 def setup_module(): print("setup_function--->") def teardown_module(): print("teardown_function--->") class Test01(): def test_01(self): print("深圳多测师") def test_02(self): print("广州多测师") class Test02(): def test_03(self): print("上海多测师") # 结果如下 collected 3 items test_demo1.py setup_function---> 深圳多测师 .广州多测师 .上海多测师 .teardown_function--->
3、类级别初始化、清除
- 在类中添加类方法 def setup_class(cls) 和 def teardown_class(cls)
- 在定义了类方法 def setup_class(cls) 和 def teardown_class(cls) 的类中所有的用例执行前后只执行一次
class Test01(): @classmethod def setup_class(cls): print("setup_function--->") @classmethod def teardown_class(cls): print("teardown_function--->") def test_01(self): print("深圳多测师") def test_02(self): print("广州多测师") class Test02(): def test_03(self): print("上海多测师") # 结果如下 collected 3 items test_demo1.py setup_function---> 深圳多测师 .广州多测师 .teardown_function---> # 如下的用例打印前后未执行初始化和清除操作 上海多测师 .