在 test_something()
中,app
实例应与 login
实例使用的实例相同。
@pytest.fixture
def app():
# ...
return app
@pytest.fixture
def login(app):
# ...
return login
def test_something(self, app, login):
pass
我尝试的是从第二个装置返回两个对象,但我不认为这是惯用的。
@pytest.fixture
def app_and_login(app):
# ...
return app, login
def test_something(self, app_and_login):
app, login = login_and_login
有更好的方法吗?
最佳答案
正如您所描述的,默认情况下, fixture 已经为测试运行时共享。
这并没有在任何地方明确记录(或者至少我没有找到它),但它有点隐含:Sharing a fixture across tests in a module描述scope
参数,默认范围为function
。
其他范围例如是 module
(共享/缓存同一模块中所有测试的固定装置)或 session
(缓存整个测试 session 的固定装置)。
关于python - 如何让两个已发布的装置相互依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36100690/