如何从另一个夹具参数化夹具?
How to parametrize fixture from another fixture?
是否可以从夹具参数化夹具?
假设我有一个夹具,它以 relay_number 作为参数:
@pytest.fixture
def unipi_relay(request):
try:
relay_number = request.param["relay_number"]
except KeyError:
raise ValueError(
"This function requires as a parameter dictionary with values for keys:"
"\nrelay_number - passed as integer\n"
)
relay = RelayFactory.get_unipi_relay(relay_number)
relay.reset()
yield relay
relay.reset()
现在我想要另一个夹具,它会产生 unipi_relay 和已经传递的参数。
我想实现这样一个解决方案的原因是我想在单个测试中重复使用 unipi_relay fixture 几次。
我不确定我是否正确理解了你想要实现的目标,因为你没有输入你的夹具所采用的参数。也许 “factory as fixture” pattern is what you're looking for, because you'll then be able to reuse the unipi_relay
fixture. Please also have a look at the question .
是否可以从夹具参数化夹具?
假设我有一个夹具,它以 relay_number 作为参数:
@pytest.fixture
def unipi_relay(request):
try:
relay_number = request.param["relay_number"]
except KeyError:
raise ValueError(
"This function requires as a parameter dictionary with values for keys:"
"\nrelay_number - passed as integer\n"
)
relay = RelayFactory.get_unipi_relay(relay_number)
relay.reset()
yield relay
relay.reset()
现在我想要另一个夹具,它会产生 unipi_relay 和已经传递的参数。
我想实现这样一个解决方案的原因是我想在单个测试中重复使用 unipi_relay fixture 几次。
我不确定我是否正确理解了你想要实现的目标,因为你没有输入你的夹具所采用的参数。也许 “factory as fixture” pattern is what you're looking for, because you'll then be able to reuse the unipi_relay
fixture. Please also have a look at the question