Python测试框架pytest fixture - 依赖、重命名、request、pytestconfig

在这里插入图片描述

1、fixture依赖其他fixture

添加了 @pytest.fixture,如果 fixture 还想依赖其他 fixture,需要用函数传参的方式,不能用 @pytest.mark.usefixtures() 的方式,否则会不生效。

1、创建test_fixture3.py文件

脚本代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:伤心的辣条
"""
import pytest

@pytest.fixture(scope="session")
def open():
    print("===打开浏览器open===")

@pytest.fixture
# @pytest.mark.usefixtures("open") 不可取、不生效
def login(open):
    # 方法级别前置操作setup
    print("===登陆操作login===")

def test_case(login):
    print("===执行用例test_case===")

2、执行结果:

执行用例test_case,会先执行login,但login里会先执行open

所以执行顺序是open->login->test_case
在这里插入图片描述

2、fixture重命名

fixture 允许使用 @pytest.fixture 的 name 参数对 fixture 重命名。

1、创建test_fixture_3.py文件

脚本代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:伤心的辣条
"""
import pytest

@pytest.fixture(name="AllTests")
def fixturefun():
    print("====fixturefun====")

@pytest.mark.usefixtures("AllTests")
def test_case():
    print("====执行用例====")

2、运行结果:
在这里插入图片描述
3、fixture之request

为请求对象提供对 request 测试上下文的访问权,并且在 fixture 被间接参数化的情况下具有可选的“param”属性。

参数:

  • fixturename = None: 正在执行此 request 的 Fixtures。

  • scope = None: 范围字符串,“方法”,“类”,“模块”,“会话”之一。

  • fixturenames: 此 request 中所有活动 Fixture 方法的名称。

  • node: 底层集合节点(取决于当前 request 范围)。

  • config: 与此 request 关联的 pytest 配置对象。

  • function: 如果 request 具有按方法范围,则测试函数对象。

  • cls: 收集测试函数的 class(可以是None)。

  • instance: 收集测试函数的实例(可以是None)。

  • module: 收集测试函数的 python 模块对象。

  • fspath: 收集此测试的测试模块的文件系统路径。

  • keywords: 底层节点的关键字/标记字典。

  • session: pytest 会话对象。

  • addfinalizer(finalizer): 在 request 测试上下文完成执行的最后一次测试之后添加要调用的终结器/拆卸函数。

  • applymarker(marker): 将标记应用于单个测试函数调用。如果你不希望在所有函数调用中都有关键字/标记,则此方法很有用。

创建test_fixture_request.py文件

fixture函数可以通过接受request对象来反向获取请求中的测试函数、类或模块上下文。

request.module属性从测试模块中获取smtpserver值。

脚本代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:伤心的辣条
"""

import pytest
import smtplib

@pytest.fixture(scope="module")
def 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值