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("-------會話級別-----執行的后置條件--------------------")