是否可以将灯具传递给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。
答案 0 :(得分:3)
不确切地知道测试定义中的yield
内容。
灯具Fixture functions using “yield” / context manager integration中yield
的效果与最初的预期无关。
如果你想在一系列灯具上迭代相同的测试,你可能需要Parametrizing a fixture