gpt4 book ai didi

python - 几个测试的pytest参数化执行顺序

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:02 25 4
gpt4 key购买 nike

我正在尝试使用 pytest_generate_tests() 进行 pytest 参数化:

conftest.py

def pytest_generate_tests(metafunc):
if 'cliautoconfigargs' in metafunc.fixturenames:
metafunc.parametrize(
'cliautoconfigargs', list(<some list of params>))
)

test_cliautoconfig.py

def test_check_conf_mode(cliautoconfigargs):
assert True
def test_enable_disable_command(cliautoconfigargs):
assert True

在这样的配置中,每个测试都以其所有参数运行,并且只有在它完成后才开始下一个测试。我想以这种方式配置测试,当所有测试都应该使用第一个参数循环运行,然后使用第二个参数,依此类推。

例如有以下输出:

test_cliautoconfig.py::test_check_conf_mode[cliautoconfigargs0]
test_cliautoconfig.py::test_check_conf_mode[cliautoconfigargs1]
test_cliautoconfig.py::test_enable_disable_command[cliautoconfigargs0]
test_cliautoconfig.py::test_enable_disable_command[cliautoconfigargs1]

我想要下一个:

test_cliautoconfig.py::test_check_conf_mode[cliautoconfigargs0]
test_cliautoconfig.py::test_enable_disable_command[cliautoconfigargs0]
test_cliautoconfig.py::test_check_conf_mode[cliautoconfigargs1]
test_cliautoconfig.py::test_enable_disable_command[cliautoconfigargs1]

最佳答案

抱歉问题重复。在 maintaining order of test execution when parametrizing tests in test class 中找到答案

conftest.py

def pytest_generate_tests(metafunc):
if 'cliautoconfigargs' in metafunc.fixturenames:
metafunc.parametrize(
'cliautoconfigargs', list(<some list of params>), scope="class"
)

test_cliautoconfig.py

class TestCommand:
def test_check_conf_mode(self, cliautoconfigargs):
assert True
def test_enable_disable_command(self, cliautoconfigargs):
assert True

关于python - 几个测试的pytest参数化执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46569498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com