微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-使用参数初始化pytest固定装置

我有一个夹具,可以创建在许多测试中使用的对象.
该对象具有属性-优先级(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)

但这似乎不对……我敢肯定每次都有一种方法可以将外部参数传递给灯具-我只是找不到

编辑:
需要澄清的是-我想要以下方面的东西:

@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

我认为如果您的问题解决了,您的问题可能会考虑重复.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐