我对 pytest 很陌生。
有一个 test_conf 目录,里面有几个测试配置文件。
test_conf
test_conf1
test_conf2
这是我的测试函数。
conf_files 函数从该目录中获取所有 test_conf 文件并返回一个列表。
@pytest.mark.parametrize('test_conf', conf_files())
def test_performance_scenario_1(fixture1, test_conf):
do_some_thing(test_conf)
fixture1 会为此测试进行设置和拆卸。
我的建议是针对 test_conf 中的每个测试 conf 文件,我们运行 test 函数对其进行一些测试。
我的问题是如何将 test_conf 的每个元素传递给 fixture1,因为我需要在需要 test conf 文件的 fixture1 设置步骤中进行一些初始化。
感谢任何帮助。
答案 0 :(得分:0)
我认为您正在寻找的是 parameterised fixtures。因此,不是将 conf 文件传递给您的测试,而是将其传递给夹具,后者使用特定的 conf 文件进行设置/拆卸。
您的 fixture1
的定义:
@pytest.fixture(scope="module", params=conf_files())
def fixture1(request):
# The pytest fixture `request` gives you access to the params defined in the annotation.
conf_file = request.param
# setup / teardown logic
...
那么在你的测试中,只要通过fixture就足够了:
def test_performance_scenario_1(fixture1):
# do_some_things