py.test 2.3.5:使用固定装置的生成测试?

时间:2013-11-14 12:08:50

标签: python testing pytest

是否可以将灯具传递给pytest生成测试?

import py.test

@py.test.fixture(scope="module")
def fixture():
    return True

def test_1(fixture):
    def checker(datum):
        assert datum == fixture
    for i in [True, True, True]:
        # Does not work.
        yield checker, i
        # Does work.
        #checker(i)

以上代码生成

>       for i, x in enumerate(self.obj()):
            name, call, args = self.getcallargs(x)
E           TypeError: test_1() takes exactly 1 argument (0 given)

我们使用Debian的py.test 2.3.5。

1 个答案:

答案 0 :(得分:3)

不确切地知道测试定义中的yield内容。

灯具Fixture functions using “yield” / context manager integrationyield的效果与最初的预期无关。

如果你想在一系列灯具上迭代相同的测试,你可能需要Parametrizing a fixture