我想传递的@pytest.mark.parametrize
不是特定的值,而是固定装置。像这样。
给定一个conftest:
@pytest.fixture
def name1():
return 'foo'
@pytest.fixture
def name2():
return 'bar'
在我的 test.py 中,这当然有效:
@pytest.mark.parametrize('name', ['foo', 'bar', 'baz'])
def test_name(name):
print(name)
这不会:
@pytest.mark.parametrize('name', [name1, name2])
def test_name(name):
print(name)
我知道,在这种微不足道的情况下,我可以只创建一个名称夹具并将夹具参数化,但在某些情况下这是不可取的。
我发现的一种解决方法是使用pytest_factoryboy
's LazyFixture
。但是,我经常无法在我的测试中访问lazyfixtures 属性。