我有一个fixture来创建一个我在很多测试中使用的对象。
此对象具有属性-priority
(1-10)
现在,有很多测试需要“知道”对象的优先级(以便测试各种逻辑路径)
所以我可以有10种不同的固定装置:
@pytest.fixture
def object_priority_1():
return MyObj(priority=1)
@pytest.fixture
def object_priority_2():
return MyObj(priority=2)
//....
@pytest.fixture
def object_priority_10():
return MyObj(priority=10)
但它似乎关闭了。。。我确信每次都有一种方法可以将一个外部参数传递到一个fixture-我只是找不到它
编辑:
为了澄清-我想要的是:
@pytest.fixture
def my_object(<priority as an external param>):
return MyObj(priority)
然后测试会是这样的:
def test_foo(my_object(1), my_object(6)):
//...
最佳答案
你可以:
@pytest.fixture
def my_object(priority):
return MyObj(priority)
def test_foo(my_object):
obj_1 = my_object(1)
assert something # 1
obj_2 = my_object(2)
assert something # 2
我有了这个想法,然后我发现这个问答:
py.test: Pass a parameter to a fixture function
如果你的问题解决了,我想你的问题可以考虑重复一次。
关于python - 使用参数初始化pytest固定装置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32275347/