【问题标题】:How to parametrize fixture from another fixture?如何从另一个夹具参数化夹具?
【发布时间】:2021-03-30 11:34:43
【问题描述】:

是否有可能从夹具参数化夹具?

假设我有一个夹具,它以 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 夹具几次。

【问题讨论】:

  • 也许这就是你要找的东西:Pass a parameter to a fixture function
  • 谢谢,但很遗憾没有。这是关于从测试中对夹具进行参数化。我正在寻找的是从夹具参数化夹具。

标签: pytest fixtures


【解决方案1】:

我不确定我是否正确理解了您想要实现的目标,因为您没有输入夹具所采用的参数。也许“factory as fixture” pattern 是您正在寻找的,因为您将能够重用unipi_relay 夹具。也请看问题Reusing pytest fixture in the same test

【讨论】:

  • 谢谢,这几乎是我需要的!我可以尝试将其用于我的目的。
猜你喜欢
  • 1970-01-01
  • 2020-11-13
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
相关资源
最近更新 更多