在单独的模块中定义的自动化pytest灯具

时间:2015-07-04 17:51:53

标签: python fixtures pytest

我的项目中有以下文件树:

...
tests/
    __init__.py
    test_abc.py
...

我在__init__.py中定义了一个夹具:

@pytest.fixture(autouse=True)
def client():
    return TestClient()

我想在test_abc.py中使用此灯具:

from . import client

def test_def():
    client.get(...) # Throws an error

如何在不通过对灯具的显式引用或使用pytest装饰器的情况下,在其他模块的测试方法中使用我的autouse灯具?

1 个答案:

答案 0 :(得分:3)

Autouse适用于所有测试都需要进行某些设置的灯具,并且可能会或可能不会返回仍然有用的东西作为测试使用的灯具。

想要访问灯具返回的内容的测试必须将灯具声明为参数,以便他们可以访问它。因此,如果您的测试想要访问夹具,他们必须将其声明为参数,即pytest的工作原理。希望这会有所帮助。