pytest系列——内置fixture函数之request详解(request.params && request.config && request.module && 。。。)

本文详细探讨了pytest的内置fixture函数request,包括如何通过request.param实现fixture参数化,结合pytest.mark.parametrize的用法,以及request.config获取pytest配置对象。此外,还介绍了如何利用request获取测试上下文信息和测试方法所属模块等实用技巧。
摘要由CSDN通过智能技术生成

前言

官方文档中 request 的描述:request是pytest的内置fixture函数;为请求对象提供对请求测试上下文的访问权,并且在fixture函数被间接参数化的情况下具有可选的"param"属性。

对这句话的解读: request 函数是pytest中的内置fixture函数,可以在自定义的fixture函数中调用 request 函数用以获取测试上下文的一些信息。【测试上下文的理解:用例参数化的测试方法(上文)中调用自定义fixture函数(下文)】

FixtureRequest

class FixtureRequest

请求对象提供对请求的测试上下文的访问,并且具有可选的 param 属性,以防设备被间接参数化。

fixturename
正在为其执行此请求的 fixture 名称。

scope
作用域字符串,“function”、“class”、“module”、“session”之一。

fixturenames
此请求中所有活动状态的 fixture 的名称。

node
基础集合节点(取决于当前请求范围)。

config
与此请求关联的 pytest 配置对象。

function
如果请求具有每个函数范围,则测试函数对象。

cls
类(可以是None),其中收集了测试函数。

instance
在其上收集测试函数的实例(可以是None)。

module
收集测试函数的Python模块对象。

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

keywords
基础节点的关键字/标记词典。

session
Pytest会话对象。

addfinalizer(finalizer: Callable[], object]) → None[源代码]
添加finalizer/teardown函数,以便在请求的测试上下文中的最后一个测试完成执行后调用。

applymarker(marker) → None[源代码]
对单个测试函数调用应用标记。

如果不希望在所有函数调用上都有关键字/标记,则此方法非常有用。

参数
marker -- A _pytest.mark.MarkDecorator 调用创建的对象 pytest.mark.NAME(...) .

raiseerror(msg: Optional[str]) → NoReturn[源代码]
使用给定的消息引发FixtureLookupError。

getfixturevalue(argname: str) → Any[源代码]
动态运行命名的fixture函数。

如果可能,建议通过函数参数声明fixtures。但是,如果您只能在测试设置时决定是否使用另一个fixture,那么您可以使用此函数在fixture或测试函数体中检索它。

引发
pytest.FixtureLookupError -- 如果找不到给定的固定装置。

request.param:用于获取测试的请求参数。【获取测试上下文的信息】

1、可以在fixture函数参数化的时候,通过request.param获取到测试的请求参数。【实现fixture函数的参数化】

①【注意】fixtur

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值