接口测试 python unittest 怎么用笛卡尔积参数化?

2unhot · 2019年06月10日 · 最后由 尚酷米 回复于 2019年06月11日 · 1844 次阅读
data = [
    [1,2,3],
    [0,0,0],
    [9999,0,9999]
]
@nose_parameterized.parameterized.expand(data)
def test_01(self, p1,p2,p3):
    '''第02_01案例'''
    print(p1,p2,p3)
# 现在的这个表现是 只可以得到3条案例

# 我希望得到的是用笛卡尔得到3*3*3条,9条案例。  unittest中怎么样可以实现???
共收到 5 条回复 时间 点赞

建议自己处理参数

1、笛卡尔积你给出三个数组的对象是什么意思呢?parameterized 只管遍历你 append 的 data,笛卡尔积是不管的。
2、3*3*3 是什么意思?这个是你定义的顺序计算出来的笛卡尔积吗?A 集合和 B 集合算出来的笛卡尔积集合再和 C 集合算出最终的笛卡尔积集合?笛卡尔积最终是一个矩阵呀。你拿出来三个集合你想要怎么排列组合呢?
3、我猜测你是想要通过给出的 N 个集合或者向量来计算出这 N 个集合的所有排列组合,那就直接初始化一个集合的类,重写mul函数让集合和集合的积为笛卡尔积,最后返回一个多维数组(矩阵?)就好了。

Karaser 回复

已经自己写了个方法去组合了,其实就是懒得写,看有没现成的

2unhot 回复

噢噢

functool 这个包里面有这个函数你找找看

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册