pytest---fixture重命名

本文介绍了如何在Pytest框架中灵活重命名fixture,通过例子展示了如何通过配置参数`name`为'anjing_login'来改变fixture的名称,并强调了重命名后正确调用的重要性,以防报错。
摘要由CSDN通过智能技术生成

  通过前面学习fixture可以正常的代替setup和teardown,我们在后期框架中的文件名过多,或者函数名过多,有时会和fixture名字进行重名,或者fixture调用容易出错。fixture也可以进行重新自己更改自己的名称

fixture重命名

在fixture源码中我们可以通过修改name的参数来更改fixture的名称。默认是我们定义def的名称

def fixture(  # noqa: F811
    fixture_function: Optional[_FixtureFunction] = None,
    *,
    scope: "Union[_Scope, Callable[[str, Config], _Scope]]" = "function",
    params: Optional[Iterable[object]] = None,
    autouse: bool = False,
    ids: Optional[
        Union[
            Iterable[Union[None, str, float, int, bool]],
            Callable[[Any], Optional[object]],
        ]
    ] = None,
    name: Optional[str] = None

说这么多,大家也不知道说的啥,举个例子吧,这里我把函数名为login的fixture通过配置参数name=“anjing_login”

# test__01.py


import pytest


@pytest.fixture(name='anjing_login')
def login():
    print('输入账号,输入密码')
    print('完成登录功能!!!!')
    yield
    print('---退出登录---')



class Test_Login:

    def test_01(self, anjing_login):
        print('------用例01------')

    def test_02(self):
        print('------用例02------')

    def test_03(self,anjing_login):
        print('------用例03------')


if __name__ == '__main__':
    pytest.main(['-s', 'test__01.py'])

这里发现我们通过使用anjing_login 就直接调用了更改名前的login。

注意:当我们进行对fixture重命名后,如果再次调用以前的名字就会出现报错

import pytest

@pytest.fixture(name='anjing_login')
def login():
    print('输入账号,输入密码')
    print('完成登录功能!!!!')
    yield
    print('---退出登录---')


class Test_Login:

    def test_01(self, login):
        print('------用例01------')

    def test_02(self):
        print('------用例02------')

    def test_03(self, anjing_login):
        print('------用例03------')


if __name__ == '__main__':
    pytest.main(['-s', 'test__01.py'])

 安静这里把用例1继续调用以前的名称,执行后,就会通过报错。所以小伙伴要特别注意,如果修改了name名称后,就需要调用重命名的名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值