模块级别:setup_module、teardown_module
函数级别:setup_function、teardown_function,不在类中的方法
类级别:setup_class、teardown_class
方法级别:setup_method、teardown_method
方法细化级别:setup、teardown
示例:
import pytest
def setup_module():
print("setup_module():在模块最之前执行,且只执行一次")
def teardown_module():
print("teardown_module:在模块之后执行,且只执行一次")
def setup_function():
print("setup_function():每个方法之前执行")
def teardown_function():
print("teardown_function():每个方法之后执行")
def test_1():
print("正在执行用例1")
x = "this"
assert 'h' in x
def test_2():
print("正在执行用例2")
assert 1 == 1
class TestClass(object):
def setup_class(self):
print("setup_class(self):每个类之前执行一次,只执行一次")
def teardown_class(self):
print("teardown_class(self):每个类之后执行一次,只执行一次")
def test_A(self):
print("正在执行用例A")
x = "this"
assert 'h' in x
def test_B(self):
print("正在执行B")
assert 1 == 1
if __name__ == "__main__":
pytest.main(["-s", "test_setup_terdown_pytest.py"])
执行结果如下:
collected 4 items
test_myShop.py setup_module():在模块最之前执行,且只执行一次
setup_function():每个方法之前执行
正在执行用例1
.teardown_function():每个方法之后执行
setup_function():每个方法之前执行
正在执行用例2
.teardown_function():每个方法之后执行
setup_class(self):每个类之前执行一次,只执行一次
正在执行用例A
.正在执行B
.teardown_class(self):每个类之后执行一次,只执行一次
teardown_module:在模块之后执行,且只执行一次
============================== 4 passed in 0.02s ==============================
可以看到互相之间没有影响,执行顺序为:
setup_module()
setup_function()
test_1
teardown_function()
setup_function()
test_2
teardown_function()
setup_class(self)
test_A
test_B
teardown_class(self)
teardown_module