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

Python配置与测试利器:Hydra + pytest的完美结合

简介:Hydra 和 pytest 可以一起使用,基于 Hydra + Pytest 的应用可以轻松地管理复杂配置,并编写参数化的单元测试,使得Python开发和测试将变得更为高效。

安装:

pip install hydra-core pytest

案例源码:my_app.py

# -*- coding: utf-8 -*-
# time: 2023/06/29 18:01
# file: my_app.py
# 公众号: 咖啡加剁椒
import hydra
from omegaconf import DictConfig@hydra.main(config_path="conf", config_name="config", version_base="1.1")
def my_app(cfg: DictConfig) -> int:return multiply(cfg.x, cfg.y)def multiply(x: int, y: int) -> int:return x * yif __name__ == "__main__":my_app()
测试用例:test_hy.py
# -*- coding: utf-8 -*-
# time: 2023/6/29 18:08
# file: test_hy.py
# 公众号:咖啡加剁椒import pytest
from my_app import multiply@pytest.mark.parametrize("x, y, expected", [(5, 3, 15), (2, 4, 8)])
def test_multiply(x, y, expected):assert multiply(x, y) == expected

同级目录下:新建conf目录,新建文件 config.yaml

# conf/config.yaml
x: 5
y: 3

运行结果:

(pytf-cpu) C:\Users\>pytest test_hy.py
====================================================================== test session starts ========
platform win32 -- Python 3.8.13, pytest-7.3.1, pluggy-1.0.0
rootdir: C:\Users\
plugins: hydra-core-1.3.2
collected 2 itemstest_hy.py ..                                                                                [100%]======================================================================= 2 passed in 0.04s =========

注意事项:Hydra 在 pytest 环境中的行为可能与在常规 Python 环境中的行为略有不同,因为 pytest 可能会干扰 Hydra 的工作方式。如果在测试中遇到任何问题,建议查阅 Hydra 和 pytest 的官方文档,或在相关社区寻求帮助。

实际上,可以利用 Hydra 的强大功能和 pytest 的灵活性,创建更复杂的测试和应用。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

相关文章:

  • 5.基于飞蛾扑火算法(MFO)优化的VMD参数(MFO-VMD)
  • 爱创科技总裁谢朝晖荣获“推动医药健康产业高质量发展人物”
  • 055-第三代软件开发-控制台输出彩虹日志
  • Os-hackNos-3
  • 时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测
  • LeetCode:307. 区域和检索 - 数组可修改(树状数组 C++)
  • 909-2015-T3
  • 【云原生】初识 Service Mesh
  • 常见的8个JMeter压测问题
  • 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序 计算机竞赛
  • 羊大师教你如何有效解决工作中的挑战与压力?
  • 【性能测试】稳定性/并发压力测试的TPS计算+5W并发场景设计...
  • 人工智能的时代---AI的影响
  • LeetCode 每日一题 2023/11/13-2023/11/19
  • Leetcode——169 多数元素
  • vue中原生H5拖拽排序_拖拽图片也是同样的道理
  • 【C语言】计算实时太阳角度(高度角、方位角),以及使用stm32单片机实时获取时间戳
  • 创建git仓库
  • 19.悲观锁与乐观锁解析
  • C语言--给出一个点的坐标判断它在单位圆的内部外部还是上面
  • 变频器基础问答集21-50
  • OpenCvSharp从入门到实践-(01)认识OpenCvSharp开发环境搭建
  • OSG文字-渐变文字(4)
  • 排查生产环境:MySQLTransactionRollbackException数据库死锁
  • 140.【鸿蒙OS开发-01】
  • npm install 下载不下来依赖解决方案
  • 接口自动化中cookies的处理技术
  • PHP 安装
  • 小程序常见操作
  • STM32F4串口USART发送为00的解决方案