我正在学习pytest的固件,下面这段代码看起来很相似,最新的看起来也很相似。
是的,在yield_fixture中可读性更好,但是有人能告诉我具体的区别吗?
在像下面提到的情况下,我应该使用哪个?
@pytest.fixture()
def open_browser(request):
print("Browser opened")
def close_browser():
print("browser closed")
request.addfinalizer(close_browser)
return "browser object"
@pytest.yield_fixture()
def open_browser():
print("Browser opened")
yield "browser object"
print("browser closed")
def test_google_search(open_browser):
print(open_browser)
print("test_google_search")
yield
fixture 使得在 fixtures 中使用上下文管理器更加自然。 - anthony sottile@pytest.fixture
是编写拆卸代码的首选方式,而@pytest.yield_fixture
已被弃用(但尚未删除)。在此处阅读更多信息:https://docs.pytest.org/en/6.2.x/changelog.html#id1313。 - Yash Nag