import pytest
data01 = [11, 22, 33, 44, 55]
data02 = [111, 221, 331, 441, 551]
@pytest.mark.parametrize(“da01”, data01)
@pytest.mark.parametrize(“da02”, data02)
def test_add(da01, da02):
print(da01 + da02)
解说: 这种 使用就是 笛卡尔积效果 不交叉取值
需求是: 不需要笛卡尔积, 就是各个变量 取 对应的集合数据
Jaxon
(霍格沃兹-修然)
2
参考下
par = [(1, 2, 3), (1, 2, 4)]
@pytest.mark.parametrize("a,b,c", par)
def test_demo(a, b, c):
re = a + b
assert re == 3
这种方式,我懂,但是我不是需要这个格式的
我需要两种参数,进行参数化,对应变量,而不是在取值的时候 交叉取值
是这个意思吗?
import pytest
data01 = [1, 2, 3]
data02 = [11, 22, 33]
data = [(n, data02[index]) for index, n in enumerate(data01)]
@pytest.mark.parametrize("da01, da02", data)
def test_demo(da01, da02):
print(f"{da01} + {da02} = {da01 + da02}")
collected 3 items
demo.py::test_demo[1-11] 1 + 11 = 12
PASSED
demo.py::test_demo[2-22] 2 + 22 = 24
PASSED
demo.py::test_demo[3-33] 3 + 33 = 36
PASSED
是这个意思,老师,我看这个是需要加自带函数的列表推导式操作 整合数据 ?
有没有系统的介绍?
但是有个问题,这个需要在参数化之前 做一个处理,
因为这些数据都是已经录入在yml文件中的
这个我知道,我现在是想问参数化,多个参数时,怎么解决 “不会出现笛卡尔积问题”