文章目录
- 1.setup和teardown简介
- 2.模块级别的 setup 和 teardown
- 3.函数级别的 setup 和 teardown
- 4.方法级别的 setup 和 teardown
- 5.类级别的 setup 和 teardown
1.setup和teardown简介
在 pytest 中,setup 和 teardown 用于在测试用例执行前后执行一些准备和清理操作。
setup 和 teardown共有四个级别
等级 | 说明 | 范围 |
---|---|---|
函数级别 | setup_function 和 teardown_function | 针对每个测试函数执行前和执行后进行操作。 |
类级别 | setup_class 和 teardown_class | 针对每个测试类执行前和执行后进行操作,它们必须是类的静态方法。 |
方法级别 | setup_method 和 teardown_method | 针对类中的每个测试方法执行前和执行后进行操作。 |
模块级别 | setup_module 和 teardown_modulesetup_module 和 teardown_module | 针对整个测试模块执行前和执行后进行操作。 |
2.模块级别的 setup 和 teardown
针对整个测试模块执行前和执行后进行操作。
示例:
def setup_module(module):
print(f"开始执行测试模块: {module.__name__}")
def teardown_module(module):
print(f"测试模块 {module.__name__} 执行完毕")
def test_example1():
print('执行测试用例1')
assert 1==1
def test_example2():
print('执行测试用例2')
assert 2==2
运行结果:
3.函数级别的 setup 和 teardown
针对每个测试函数执行前和执行后进行操作。
示例:
def setup_function(function):
print(f"开始执行测试函数: {function.__name__}")
def teardown_function(function):
print(f"测试函数 {function.__name__} 执行完毕")
def test_example1():
print('执行测试用例1')
assert 1==1
def test_example2():
print('执行测试用例2')
assert 2==2
运行结果:
4.方法级别的 setup 和 teardown
针对类中的每个测试方法执行前和执行后进行操作。
示例:
class TestClass:
def setup_method(self,method):
print(f"开始执行测试方法: {method.__name__}")
def teardown_method(self, method):
print(f"测试方法 {method.__name__} 执行完毕")
def test_example1(self):
print('执行测试用例1')
assert 1 == 1
def test_example2(self):
print('执行测试用例2')
assert 2 == 2
运行结果:
5.类级别的 setup 和 teardown
针对每个测试类执行前和执行后进行操作,它们必须是类的静态方法。
示例:
class TestClass:
def setup_class(cls):
print(f"开始执行测试类: {cls.__name__}")
def teardown_class(cls):
print(f"测试类 {cls.__name__} 执行完毕")
def test_example1(self):
print('执行测试用例1')
assert 1 == 1
def test_example2(self):
print('执行测试用例2')
assert 2 == 2
运行结果: