gpt4 book ai didi

python - Pytest - 如何将特定的设置和拆卸函数链接到特定的测试函数?

转载 作者:行者123 更新时间:2023-12-01 09:06:43 24 4
gpt4 key购买 nike

有人提出了类似的问题,但没有一个答案解决了我的问题:

我有以下3个功能:

def specific_setup_function():
print("\n\nsetup_function\n\n")


def specific_teardown_function():
print("\n\nteardown_function\n\n")


def specific_test():
print('\n\nTEST\n\n')

如何让 pytest 在 specic_setup_function 之后和 specic_teardown_function() 之前执行 specific_test(),无论还有多少其他函数在我的测试模块中?

在这个例子中,它将按照指定的顺序执行,因为这些是唯一的函数,但在更一般的情况下,我希望前面的代码等同于以下代码,始终:

def test():
specific_setup_function()
print('\n\nTEST\n\n')
specific_teardown_function()

因此,special_test 将链接到 special_setup_functionspecial_teardown_function

有办法吗?

最佳答案

您需要使用fixtures with a finalizer .

@pytest.fixture
def specific_fixture(request):
print("\n\nsetup_function\n\n")
def fin():
print("\n\nteardown_function\n\n")
request.addfinalizer(fin)
return 6 # You can return a value from a fixture


def specific_test(specific_fixture):
print('\n\nTEST: %s\n\n' % specific_fixture)

关于python - Pytest - 如何将特定的设置和拆卸函数链接到特定的测试函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51987078/

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