本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/27557
一、 概述
- setup_module / teardown_module
全局模块级,在 整个模块执行前后 只执行一次 - setup_class / teardown_class
类级,在 类执行前后 只执行一次 - setup_function / teardown_function
函数级,在类外定义,类外的 每个方法执行前后 都要执行一次 - set_method / teardown_method
方法级,类中的 每个方法执行前后 都要执行一次 - setup / teardown
在类中,等价于 setup_method / teardown_method,在类中的 每个方法执行前后 都要执行一次
二、示例
下面是一段模拟代码,模拟测试框架执行顺序,便于加深理解。
def setup_module():
print('模块级 初始化,setup_module running...')
def teardown_module():
print('模块级 销毁,teardown_module running...')
def setup_function():
print('函数级 初始化,setup_function running...')
def teardown_function():
print('函数级 销毁,teardown_function running...')
def test_fun1():
print('类外测试函数 test_fun1 running...')
def test_fun2():
print('类外测试函数 test_fun2 running...')
class TestDemo():
def setup(self):
print('类内,初始化,setup running...')
def teardown(self):
print('类内,销毁,teardown running...')
def test_x1(self):
print('类内测试方法 test_x1 running...')
def test_x2(self):
print('类内测试方法 test_x2 running...')
运行效果为:
观察可知,测试框架执行顺序为:模块级(前后只执行一次)-> 函数级(类外,可多个方法,执行多次)-> 类级(前后只执行一次) → 方法级(类内,可多个方法,执行多次)