1

是否可以将夹具传递给 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。

4

1 回答 1

3

不确切知道yield内部测试定义应该做什么。

yield夹具中的夹具功能使用“yield”/上下文管理器集成,起初并不像人们预期的那样工作。

如果您想在一系列夹具上迭代相同的测试,您可能需要参数化夹具

于 2013-11-15T09:05:58.430 回答