赞
踩
如果测试数据需要在fixtrue方法中使用 同时也需要在测试用例中使用
可以在使用parametrize 时添加一个参数 indirect=True pytst可以实现将参数传入到fixtrue中,也可以在当前测试用例中使用
当indirect=True pytest会把argnames当做函数去执行
将argvalues作参数传入到argnames这个函数里面
import pytest test_user_data=["Tome","Jerry"] @pytest.fixture(scope="module") def login_r(request): #通过request.param 获取参数 user=request.param print(f"登录用户:{user}") return user @pytest.mark.parametrize("login_r",test_user_data,indirect=True) def test_login(login_r): a=login_r print(f"测试用例中的返回值为:{a}") assert a!=""
登录用户:Tome
PASSED [ 50%]测试用例中的返回值为:Tome
登录用户:Jerry
PASSED [100%]测试用例中的返回值为:Jerry
当indirect=True 将login_r作为参数, test_user_data被作为参数传递到login_r 方法中 生成多条用例,通过return将结果返回
当调用login_r时可以获取到longin_r这个方法返回的参数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。