【问题标题】:Reuse pytest fixtures重用 pytest 固定装置
【发布时间】:2018-02-10 20:19:27
【问题描述】:

我正在使用 pytest 编写一些测试,其中许多具有类似的固定装置。我想将这些“全局”夹具放在一个文件中,以便可以在多个测试文件中重用它们。我的第一个想法是创建一个fixtures.py 文件,例如

import pytest


@pytest.fixture()
def my_fixture():
    # do something

现在我如何在my_tests.py 中使用这个夹具?

def test_connect(my_fixture):
    pass

这给出了fixture 'my_fixture' not found。我可以from fixtures import my_fixture。对于这种情况,建议的解决方案是什么?

【问题讨论】:

    标签: python unit-testing pytest fixtures


    【解决方案1】:

    Pytest 将自动共享 conftest.py 中的固定装置。将共享夹具从fixtures.py 移动到conftest.py

    【讨论】:

    • 虽然这可能是避免大量数据库连接的好主意,但这并不能解决我关于如何将夹具导入测试文件的问题。
    • 注意:您需要将这些放在您的测试目录中的 conftest.py 中——pytest 将在 conftest.py 中搜索固定装置
    • Pytest not 在我当前的代码中自动共享夹具。请参阅我原来的问题中的错误消息。
    • @Code-Apprentice 您需要将fixtures.py 重命名为conftest.py 并添加scope='session' 参数。
    • 示例数据库夹具对我的核心问题并不重要。我已使用您在上一条评论中提到的正确解决方案编辑了您的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    相关资源
    最近更新 更多