小编anc*_*ker的帖子

是否可以在 pytest_generate_tests() 中使用夹具?

我有一些固定装置在conftest.py实际测试功能中运行良好。但是,我想pytest_generate_tests()根据其中一些装置中的数据来参数化一些测试。

我想做的事情(简化):

-- conftest.py --
# my fixture returns a list of device names.
@pytest.fixture(scope="module")
def device_list(something):
    return ['dev1', 'dev2', 'dev3', 'test']

-- test001.py --
# generate tests using the device_list fixture I defined above.
def pytest_generate_tests(metafunc):
    metafunc.parametrize('devices', itertools.chain(device_list), ids=repr)

# A test that is parametrized by the above function.
def test_do_stuff(devices):
    assert "dev" in devices

# Output should/would be:
dev1: pass
dev2: pass
dev3: pass
test: FAIL
Run Code Online (Sandbox Code Playgroud)

当然,我遇到的问题是在 pytest_generate_tests() 中,它抱怨 device_list 未定义。如果我尝试将其传入 pytest_generate_tests(metafunc, device_list),则会出现错误。

E …
Run Code Online (Sandbox Code Playgroud)

pytest

8
推荐指数
1
解决办法
988
查看次数

标签 统计

pytest ×1