Pytest09 :fixture 的usefixtures和autouse特性.

现在总结下调用fixture 的方法有:
1.直接在方法参数 里填入fixture 的名字 (前面已经介绍)
2.usefixtures 指定fixture
3.autouse=True 默认调用.

1.usefixtures

usefixtures 对测试函数来讲没有多大的意义,但是非常 适合测试类.

@pytest.fixture(scope='class')
def class_scope():
    print("类级别的fixtue")
@pytest.mark.usefixtures('class_scope')
class Test_class():
    def test_func_03(self):
        print("执行类函数3")

    def test_func_04(self):
        print("执行类函数4")

2.autouse=True

这个是fixture 一个参数
我们可以通过指定autouse=True 选项,使作用域内的测试函数都运行该fixture.

尽量少用这个,代码可读性不高,逻辑不好控制.

import pytest

@pytest.fixture(scope='function',autouse=True)
def func_scope():
    print("函数级别的fixtue")
@pytest.fixture(scope='module',autouse=True)
def module_scope():
    print("模块级别的fixtue")
@pytest.fixture(scope='session',autouse=True)
def session_scope():
    print("会话级别的fixtue")
@pytest.fixture(scope='class',autouse=True)
def class_scope():
    print("类级别的fixtue")

def test_func_01():
    print("执行函数一")
def test_func_02():
    print("执行函数2")

class Test_class():
    def test_func_03(self):
        print("执行类函数3")

    def test_func_04(self):
        print("执行类函数4")


执行过程 :

SETUP    S session_scope
    SETUP    M module_scope
      SETUP    C class_scope
        SETUP    F func_scope
        func/test_add.py::test_func_01 (fixtures used: class_scope, func_scope, module_scope, session_scope).
        TEARDOWN F func_scope
      TEARDOWN C class_scope
      SETUP    C class_scope
        SETUP    F func_scope
        func/test_add.py::test_func_02 (fixtures used: class_scope, func_scope, module_scope, session_scope).
        TEARDOWN F func_scope
      TEARDOWN C class_scope
      SETUP    C class_scope
        SETUP    F func_scope
        func/test_add.py::Test_class::test_func_03 (fixtures used: class_scope, func_scope, module_scope, session_scope).
        TEARDOWN F func_scope
        SETUP    F func_scope
        func/test_add.py::Test_class::test_func_04 (fixtures used: class_scope, func_scope, module_scope, session_scope).
        TEARDOWN F func_scope
      TEARDOWN C class_scope
    TEARDOWN M module_scope
TEARDOWN S session_scope


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值