如果我错了,请纠正我,但是如果用scope="session"
定义了一个固定装置,难道不是整个pytest
都只运行一次固定装置吗?
例如:
import pytest
@pytest.fixture
def foo(scope="session"):
print('foooooo')
def test_foo(foo):
assert False
def test_bar(foo):
assert False
我有一些测试依赖于从某些API检索到的数据,而不是在每个测试中都查询API,而是有一个夹具一次获取所有数据,然后每个测试使用它所需的数据。但是,我注意到每次测试都会向API发出请求。
答案 0 :(得分:2)
那是因为您声明灯具错误。 scope
应该进入pytest.fixture
装饰器参数:
@pytest.fixture(scope="session")
def foo():
print('foooooo')
在您的代码中,范围保留为默认值function
,这就是为什么要为每个测试运行灯具的原因。