当前位置: 首页 > news >正文

pytest方法间变量值传递--request夹具

相当于self对象,因为调试的时候测试用例是类似沙箱的单步运行,所以self对象的属性被阻挡在沙箱外边。

request.cls 是pytest中的一个属性,它允许您在测试类中共享数据或属性。当您使用pytest编写测试类时,request 夹具允许您在测试方法之间传递数据或设置属性。

具体来说,以下是 request.cls 的用法:

在测试类中设置属性:您可以在一个测试方法中使用 request.cls 来设置属性,然后在同一个测试类中的其他测试方法中访问这些属性。这使得在整个测试类中共享数据变得容易。

继承测试夹具:通过使用 @pytest.mark.usefixtures(“request”) 装饰器,您可以将 request 夹具应用于整个测试类,以使 request.cls 在整个测试类中可用。

下面是一个示例,展示了如何在pytest测试类中使用 request.cls:

import pytestclass TestSample:def test_example1(self, request):# 在这个测试方法中,使用request夹具来写入属性到self对象中request.cls.shared_data = "Data from test_example1"assert 1 == 1def test_example2(self, request):# 在这个测试方法中,获取先前设置的属性shared_data = request.cls.shared_dataassert shared_data == "Data from test_example1"@pytest.mark.usefixtures("request")
class TestSampleFixture:pass

运行结果

============================= test session starts =============================
collecting ... collected 2 itemstest.py::TestSample::test_example1 PASSED                                [ 50%]
test.py::TestSample::test_example2 PASSED                                [100%]============================== 2 passed in 0.02s ==============================

在上述示例中,request.cls 用于在 test_example1 中设置属性 shared_data,然后在 test_example2 中获取该属性。通过使用 @pytest.mark.usefixtures(“request”) 装饰器,我们确保 request 夹具在整个 TestSampleFixture 测试类中可用。

请注意,使用 request.cls 应该小心谨慎,确保不会引入测试之间的状态污染,因为pytest默认情况下会运行测试方法的时候不会重用测试类的实例。

http://www.lryc.cn/news/205780.html

相关文章:

  • Linux 内核定时器(高级字符设备五)
  • 「快学Docker」Docker镜像和容器的创建与管理
  • Zabbix出现 404Not FoundThe requested URL /zabbix was not found on this server.
  • 【STM32】标准库的引入
  • Redis的淘汰策略
  • Linux友人帐之日志与备份
  • git中如何在父仓库提交子仓库的修改
  • 【【萌新的SOC学习之SD卡DMA回路读写大数据的实验】】
  • 在k8s中 ,数据包是怎么从外部流转进入到pod的?
  • 微信小程序设置 wx.showModal 提示框中 确定和取消按钮的颜色
  • 【Chrome】使用k8s、docker部署无头浏览器Headless,Java调用示例
  • springmvc http请求,支持get,post,附件传输和参数传输
  • linux性能分析(七)CPU性能篇(二)怎么理解平均负载
  • PostgreSQL12中浮点数输出算法优化带来的小问题
  • Hive安装配置笔记
  • 前端数据可视化之【Echarts下载使用】
  • 本机计算机上的mysql启动后停止
  • Java中ReentrantLock测试线程的安全
  • Vue-dvadmin-d2-crud-plus-常用配置-row-handle-columns-options
  • 【OpenCV实现图像的算数运算,性能测试和优化,改变颜色空间】
  • 多级缓存入门
  • CentOS卸载LVM磁盘的方法
  • ChatGPT:Spring Boot和Maven——Java应用开发的关键工具和区别
  • 智能振弦传感器:参数智能识别技术的重要科技创新
  • tooltip实现悬停内容染色
  • “深入探讨Java JUC中的ReentrantLock锁:实现多线程同步与并发控制“
  • Java|学习|多线程
  • 【Python机器学习】零基础掌握VotingClassifier集成学习
  • 深入了解JavaScript中的AJAX和HTTP请求
  • 第87步 时间序列建模实战:LSTM回归建模