gpt4 book ai didi

python - py.test 和 fixtures - 如何只选择一种参数变体

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:20 25 4
gpt4 key购买 nike

假设我有以下灯具:

@pytest.fixture(params=['google.com','other-provider.com')
def smtp_server(request):
.... some initialisation ....
return SmtpServer(request.param)


@pytest.fixture(params=['plain_text','html')
def message(request):
.... some initialisation according to email type....
return msg_obj

因此,如果我在一个测试函数中使用它们,我有组合:google+plain、provider+plain、google+html、provider+html。

但是,如果我想重用 fixture,但仅限于特定的组合,该怎么办。例如,我注意到当我向 google 发送 html 电子邮件时,在某些情况下它会失败。我如何重用固定装置并测试这种情况,而不测试发送到 other-provider.com,这是毫无意义的?

换句话说 - 如何在特定的测试函数中跳过一些 fixture 的组合?

最佳答案

首先我想指出这实际上是一个相当奇怪的案例。您真的确定这些测试对于您要跳过的组合毫无意义吗?

话虽如此,我自己解决这个问题的方法就是简单地使用

if snmtp_server == 'other-provider.com' and message == 'html':
pytest.skip('impossible combination')

在测试函数中。它很简陋,但对于这种不寻常且罕见的情况来说已经足够好了。

关于python - py.test 和 fixtures - 如何只选择一种参数变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18609681/

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