1.conftest.py与放在项目根目录下,可以通过session级别的实现会话级别唯一 2.初始化操作举例 在conftest.py文件中,定义一个类,类变量在在初始化方法中实例化,在里面py文件中就都可以使用该类.变量来调用该对象,保证只初始化一次 ## conftest.py
class Test1:
dr = None # type:
classss = None # type:Ss
class Ss:
def __init__(self):
self.__cs = Test1.dr
def pr1(self):
print("方法1" + self.__cs)
def pr2(self):
print("方法2" + self.__cs)
def close(self):
print("退出")
print("结束")
@pytest.fixture(scope='session', autouse=True)
def chishihua(request):
Test1.dr = "ces"
Test1.classss = Ss()
print("所有")
def fin():
Test1.classss.close() # 关闭操作
request.addfinalizer(fin)
-
autouse参数的差别 不使用autouse=True,需要在其他测试方法中调用该初始化方法,使用autouse=True则不需要调用
-
addfinalizer方法可以进行session后的收尾工作
-
通过方法函数的方法名称来调用被@pytest.fixture修饰的方法名的返回值 # 实现模式,当使用时只需要在test(函数数传入相应的方法名) 如 def test_1(read_from_ini) 在该函数中即可调用read_from_ini对象 @pytest.fixture(scope='session', autouse=True) def read_from_ini(): from utils.ReadIni import Readini return Readini()