一、Fixture参数之params参数可实现参数化:(可以为list和tuple,或者字典列表,字典元祖等)
实例如下:
import pytest
def read_yaml():
return ['1','2','3']
@pytest.fixture(params=read_yaml())
def get_param(request):
return request.param
def test01(get_param):
print('测试用例:'+get_param)
if __name__ == '__main__':
pytest.main(['-s','pytest-demo.py'])
注意:
1.此例中test01方法被执行了三次,分别使用的数据为'1','2','3',此结果类似于ddt数据驱动的功能。特别注意:这里的request参数名是固定的,然后request.param的param没有s哦。
2.可以把return request.param改成yield request.param,yield也是返回的意思,它和return的区别在于return返回后后面不能接代码,但是yield返回后,后面还可以接代码。
Fix