- conftest.py
@pytest.fixture(scope='function') # 作用域通常有:session, class, function
def TestInit():
logger.info('yield前的代码执行时机与setup类似')
yield # 这里可以返回一个对象
logger.info('yield后的代码执行时机与teardown类似')
- testcase.py
def setup_function():
logger.info('setup启动了')
def teardown_function():
logger.info('teardown启动了')
class TestCaseBase: # 作用域域fixture类似,但是没有function
def setup_method():
pass
def teardown_method():
pass
fixture 与 setup 在相同作用域下:
开始 ---> setup ---> fixture ---> fixture ---> teardown ---> 结束
2024-07-19 13:51:07.067 | INFO | base.testCaseBase:setup_method:15 - setup 启动了
2024-07-19 13:51:07.068 | INFO | testCase.conftest:TestInit:13 - fixture启动了
2024-07-19 13:51:46.024 | INFO | testCase.conftest:TestInit:17 - fixture结束了
2024-07-19 13:51:46.421 | INFO | base.testCaseBase:teardown_method:18 - teardown 启动了
在不同作用域下:
开始 ---> session ---> package ---> module ---> class ---> function(默认) ---> 结束