pytest.mark.parametrize 是pytest用来参数化测试的一个装饰器,它允许你为测试函数或测试类提供多组参数list, 这样就可以使用每组参数执行测试函数或测试类,实现参数化驱动,接收的是元组集
1.pytest.mark.parametrize 可接收三个参数,常用的有两个,第一个是函数中需要引用的参数名,第二个是参数值,会自动解析参数值并赋值到参数名上,按顺序将最小的迭代单元赋值到参数上
参数名:传字符串类型,字符串中可以定义一个或者多个参数名,用逗号分隔开
参数值:可迭代的对象,比如列表、元组、集合等等, 注意:参数值可以使用变量,但是不能传装饰器
示例1:
test_datas =[
{"input1": 1, "input2": 2, "expected": 3},
{"input1": 2, "input2": 3, "expected": 5},
{"input1": 3, "input2": 4, "expected": 7}
]
@pytest.mark.parametrize("data", test_datas)
data = {"input1": 1, "input2": 2, "expected": 3}
data = {"input1": 2, "input2": 3, "expected": 5}
data = {"input1": 3, "input2": 4, "expected": 7}
示例2:
test_datas =[(1, 2, 3), (2, 3, 4), (3, 4, 5)]
@pytest.mark.parametrize("data01, data02, data03", test_datas)
data01=1, data02=2, data03=3
data01=2, data02=3, data03=4
data01=3, data02=4, data03=5
还有一个参数是ids
ids:这个是可选参数,标记每一组数据,在测试输出中展示,如图
标签:传参,input2,parametrize,input1,mark,pytest,参数,expected From: https://www.cnblogs.com/hqsbrx/p/18255937