首页 > 解决方案 > Python 内置夹具

问题描述


我正在尝试运行使用以下功能的 pytest:

def storage_class(request):

    def fin():
        sc.delete()

    request.addfinalizer(fin)

    logger.info("Creating storage")
    data = {'api_version': 'v1', 'kind': 'namespace'}
    # data is ususally loaded from yaml template
    sc = OCS(**data)
    return sc

我在项目中找不到任何名为“request”的夹具,所以我认为它是一个内置夹具。然而,我在文档中搜索了它,但我找不到“请求”内置夹具:https : //docs.pytest.org/en/latest/builtin.html 任何人都可以对此有所了解(内置?)夹具?谢谢!

标签: pythonpytest

解决方案


request夹具有助于获取有关上下文的信息。

更多应要求夹具

请求夹具的示例

请求夹具最常见的用法是addfinalizerconfig

如果您只需要一个teardown功能,您可以简单地使用 ayield并摆脱request夹具。

@pytest.fixture()
def storage_class():

    logger.info("Creating storage")
    data = {'api_version': 'v1', 'kind': 'namespace'}
    sc = OCS(**data)
    yield sc

    # Any code after yield will give you teardown effect
    sc.delete()

推荐阅读