pytest实现fixture的原理,pytest fixture获取测试数据
本文主要分享Pytestfixture参数传递的几种方式。文章基于python相关资料,详细介绍了该课题,具有一定的参考价值,有需要的朋友可以参考一下。
00-1010 1.背景2。Fixture中参数传递的几种方式1)Fixture中函数返回2)与@ py test . mark . parameter ize结合3)Fixture中嵌套方法传递4)测试方法中数据生成后直接调用teardown。
目录
最近在Pytest中使用fixture和conftest时,我们需要在conftest中的setup和teardown方法中传递参数。下面是一些实现的方法。
1.背景
2.fixture中参数传递的几种方式
conftest.py
@pytest.fixture(scope=class )
def setup_func():
test_data=[{k1: v1},{k2: v2}]
返回测试数据
testcase.py
定义测试函数(设置函数)
打印(设置功能)
结果:
执行一个用例并输出:[{k1 : v1},{k2 : v2}]
1)fixture中的函数返回
conftest.py
@pytest.fixture(scope=class )
def setup_func(请求):
打印(request.param)
返回请求. param
testcase.py
test_data=[{k1: v1},{k2: v2}]
@ py test . mark . parameterize( setup _ func ,test_data,indirect=True)
定义测试函数(设置函数)
设置_函数
结果:
执行两个用例,分别输出:{k1 : v1},{k2 : v2}
注:
当indirect=False时,“setup_func”作为普通变量处理;
当indirect=True时,“setup_func”作为函数执行,“test_data”作为函数中的参数传递。
2)与@pytest.mark.parametrize的结合
confitest.py
@pytest.fixture(scope=class )
def setup_func1():
test_data1=[{k1: v1},{k2: v2}]
返回测试数据1
@pytest.fixture(scope=class )
定义设置函数2(设置函数1):
a=设置_功能1
b=[{k11: v11},{k22: v22}]
返回(a,b)
testcase.py
def测试_aaa(self,setup_func2):
打印(setup_func2)
结果:
执行一个用例并输出:([{K1 : v1},{K2 3360 v2}],[{K11 3360 v11},{K22 3360 v22}])
3)fixture中的方法嵌套传递
@python.fixture(scope=class )
def teardown_func():
def _teardown_func(param1,param2):
函数()
返回_拆卸_功能
关于分享Pytest夹具参数传递的几种方式的这篇文章到此为止。有关Pytest参数传递的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。