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("-------会话级别-----执行的后置条件--------------------")

 

 
 
posted @ 2022-01-11 23:26  2orange  阅读(1187)  评论(0编辑  收藏  举报