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