导读
fixture 是 pytest 中一个非常重要的模块,可以让代码更加简洁。
fixture 的 autouse 为 True 可以自动化加载 fixture。
如果不想每条用例执行前都运行初始化方法(可能多个fixture)怎么办?可不可以只运行一次初始化方法?
答:可以使用 scope 。
举例
要先创建一个文件:conftest.py, 编写代码:
import pytest
data = {}
@pytest.fixture(scope="session")
def add():
"""相加"""
return 5 + 8
@pytest.fixture(scope="session")
def multiply():
"""相乘"""
return 5 * 8
@pytest.fixture(scope="session", autouse=True)
def init_data():
"""初始化数据"""
print(f"start init_data: {data}")
data["a"] = 5
data["b"] = 8
data["c"] = 13
data["d"] = 40
data["e"] = 53
data["f"] = 520
@pytest.fixture(scope="session", autouse=True)
def init_data2(add, multiply):
"""初始化数据"""
print(f"start init_data2: {data}")
data["e"] = add * multiply

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



