pytest中前置和后置条件的设置
pytest中的前置后置分为4个级别:
- 用例级别
- 用例类级别
- 用例模块(文件)级别
- 会话(程序)级别
pytest中设置前后置条件用@pytest.fixture()
为方便管理,pytest中前置后置条件的设置可以放到conftest.py文件中(就是这个名字,且和运行文件同级别),
测试用例模块中用到conftest.py文件中的前置后置条件时不必导入,直接用即可
import pytest # 用例级别的前置后置条件 @pytest.fixture() def case_fixture(): # 前置条件 print("------------用例执行的前置条件--------------------") yield # 后置条件 print("------------用例执行的后置条件--------------------") # 用例级别的前置后置条件 @pytest.fixture() def case02_fixture(): # 前置条件 print("--------02----用例执行的前置条件--------------------") yield # 后置条件 print("--------02----用例执行的后置条件--------------------") @pytest.fixture() def case03_fixture(): # 前置条件 print("--------03----用例执行的前置条件--------------------") yield # 后置条件 print("---------03---用例执行的后置条件--------------------") # 类级别的前置后置 @pytest.fixture(scope='class') def class_fixture(): # 前置条件 print("-------用例类-----执行的前置条件--------------------") yield # 后置条件 print("-------用例类-----执行的后置条件--------------------") @pytest.fixture(scope='class') def class02_fixture(): # 前置条件 print("-------用例类02-----执行的前置条件--------------------") yield # 后置条件 print("-------用例类02-----执行的后置条件--------------------") # 模块级别的前置后置: # autouse=True:添加此参数后模块级别的前后置会自动执行,不需要手动添加到指定的类或函数上去 @pytest.fixture(scope='module', autouse=True) def module_fixture(): # 前置条件 print("-------模块-----执行的前置条件--------------------") yield # 后置条件 print("-------模块-----执行的后置条件--------------------") # 会话级别的前置后置: @pytest.fixture(scope='session', autouse=True) def session_fixture(): # 前置条件 print("-------会话级别-----执行的前置条件--------------------") yield # 后置条件 print("-------会话级别-----执行的后置条件--------------------")