我试图在一个测试中多次使用参数化的fixture,目的是得到所有值的笛卡尔积。在
https://stackoverflow.com/a/39444098/102441演示如何对一个简单的夹具执行此操作:
import pytest
@pytest.fixture(params=[0, 1, 2])
def first(request):
return request.param
second = first
# runs 3x3 = 9 times
def test_double_fixture(first, second):
assert False, '{} {}'.format(first, second)
但是,如果参数化来自于一个相关的夹具,那么这种方法就失败了:
^{pr2}$如何让这个运行3x3的测试像这个简单的例子?在
这是pytest的正确行为。因为您使用
integer
深入到其他设备中。要了解发生了什么,请检查带有setup show标志的pytest。您将看到类似于:所以整数值只适用于平方整数函数。在
为了回答您的问题,我们可以将代码重构为fixture和一个函数。这看起来像:
^{pr2}$你将有9个测试,顺序如下:
相关问题 更多 >
编程相关推荐