gpt4 book ai didi

python - 参数化 pytest fixture 的输出

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:02 24 4
gpt4 key购买 nike

我想参数化 pytest fixture 的输出。例如,假设我有两个灯具:

# contents of test_param.py
import pytest

@pytest.fixture(params=[1,2])
def fixture_1(request):
return request.param

@pytest.fixture
def fixture_2(fixture_1):
for num in range(5): # the output here should be parametrized
return '%d_%s' % (fixture_1, num) # but only returns first iteration

def test_params(fixture_2):
print (fixture_2)
assert isinstance(fixture_2, str)

然后当我运行以下命令时:

py.test test_param.py 

对于固定装置 1 中的每个参数,只有固定装置 2 中的第一次迭代会被传递。如何参数化固定装置 2 的输出,以便 for 循环中的每次迭代都会传递到 test_params 函数?

编辑:假设第二个 fixture 不能以与第一个 fixture 相同的方式进行参数化,因为在实际问题中,第二个参数的输出取决于第一个 fixture 的输入。

最佳答案

您正在使用从固定功能返回的return

为什么不像第一个装置一样参数化第二个装置?

# contents of test_param.py
import pytest

@pytest.fixture(params=[1,2])
def fixture_1(request):
return request.param

@pytest.fixture(params=list(range(5)))
def fixture_2(fixture_1, request):
return '%d_%s' % (fixture_1, request.param)

def test_params(fixture_2):
print (fixture_2)
assert isinstance(fixture_2, str)

关于python - 参数化 pytest fixture 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36613092/

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