有没有办法在pytest函数中多次使用相同的夹具?

时间:2017-05-22 14:16:18

标签: python python-2.7 pytest fixtures fixture

喜欢这个

@pytest.fixture
def myfixture():
   # creates a complex object

def test_compare(myfixture,myfixture):
   #compares

有没有办法知道我在做哪个灯具? 生成的对象是不同的

由于

2 个答案:

答案 0 :(得分:1)

您正在寻找工厂模式https://docs.pytest.org/en/latest/fixture.html#factories-as-fixtures

关于固定装置工厂Why would a pytest factory as fixture be used over a factory function?的优势的问题在这里

回答您的问题

@pytest.fixture
def myfixture():
   def _make_fixture():
       # creates a complex object
   return _make_fixture

def test_compare(myfixture):
    data1 = myfixture()
    data2 = myfixture()
    #compares

答案 1 :(得分:0)

为什么要比较夹具返回的对象?固定装置并非如此。

根据文档,

  

测试装置的目的是提供一个固定的基线,测试可以可靠地重复执行。

如果你想比较返回的物体,只需将它作为功能,而不是作为fixture.Like。

def myfixture():
   # creates a complex object

def test_compare():
   a=myfixture()
   b=myfixture()
   #compare a and b