我只需要在 pytest 中运行一次参数化测试,
例如,我有一个包含测试数据的动态列表,并希望使用 test_data[0] 参数运行测试,以防用户为此发送一些条件,例如标记
test_data = list()
test_data = create_test_data() #dynamic list depends on user conditions
@pytest.mark.parametrize("params", test_data)
def test_b(params):
...
最佳答案
最好将您的测试重构为配置文件并进行测试。那么最简单的方法是在不同的文件夹中定义几个具有不同数据量的配置文件。
或者,您传递一个参数并解析它,如下所示
测试:
def test_b(params):
...
conftest.py 的内容:
data = [....]
def pytest_addoption(parser):
parser.addoption("--one", action="store_true", help="run one test")
def pytest_generate_tests(metafunc):
if "params" in metafunc.fixturenames:
if metafunc.config.getoption("one"):
metafunc.parametrize("params", data[:1])
else:
metafunc.parametrize("params", data)
也可以看看
How to pass arguments in pytest by command line
关于python - 如何在pytest中只运行一次参数化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57808422/