前言
每一条pytest用例都可以添加fixture的前置功能,只需要在用例的参数中传入在conftest.py文件中写的函数的名称就可以实现每条用例的前置和后置。
1. yaml文件中加入fixture的功能
因为我们实现了动态生成测试用例,所以我们可以直接通过在生成动态用例的时候就传入该fixture函数名。在conftest.py文件中,我们写入fixture函数:
@pytest.fixture()
def run_fixt():
print('------------用例执行之前---------------')
yield
print('------------用例执行之后----------------')
之后在生成用例函数的时候,在函数中加入,用例前置的名称即可实现用例的前置后置功能。
f = create_function_from_parameters(func=execute_yaml_case,
parameters=[
Parameter('request', Parameter.POSITIONAL_OR_KEYWORD),
Parameter('requests_session', Parameter.POSITIONAL_OR_KEYWORD),
Parameter('base_url', Parameter.POSITIONAL_OR_KEYWORD),
Parameter('run_fixt', Parameter.POSITIONAL_OR_KEYWORD), # 添加用例前置后置功能
],
documentation=case_name,
func_name=case_name,
func_filename=f"{self.module.__name__}.py")
运行一下看看是否成功:pytest .\data\test_login.yml -s
上面的方式,我们是在生成用例函数的时候,写死进去的,不是特别灵活,我们可以通过写在yaml文件中的方式,来灵活传入用例前置后置功能。