如何从另一个夹具参数化夹具?

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 .