码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python配置与测试利器:Hydra + pytest的完美结合


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

    安装:

    pip install hydra-core pytest
    

    案例源码:my_app.py

    1. # -*- coding: utf-8 -*-
    2. # time: 2023/06/29 18:01
    3. # file: my_app.py
    4. #
    5. import hydra
    6. from omegaconf import DictConfig
    7. @hydra.main(config_path="conf", config_name="config", version_base="1.1")
    8. def my_app(cfg: DictConfig) -> int:
    9. return multiply(cfg.x, cfg.y)
    10. def multiply(x: int, y: int) -> int:
    11. return x * y
    12. if __name__ == "__main__":
    13. my_app()

    测试用例:test_hy.py

    1. # -*- coding: utf-8 -*-
    2. # time: 2023/6/29 18:08
    3. # file: test_hy.py
    4. #
    5. import pytest
    6. from my_app import multiply
    7. @pytest.mark.parametrize("x, y, expected", [(5, 3, 15), (2, 4, 8)])
    8. def test_multiply(x, y, expected):
    9. assert multiply(x, y) == expected

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

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

    运行结果:

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

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

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

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

    在这里插入图片描述

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

  • 相关阅读:
    Redis内存回收
    C语言系统化精讲(三):C语言变量和数据类型-上篇
    从“一时红”到“持久火”,“网红”农产品如何越向“长红”?
    基于Admin.NET框架的前端的一些改进和代码生成处理(1)
    华为的隐藏功能,你们知道多少?
    数据库课程设计:会议预约管理系统(Java+MySQL)
    Unity SRP 管线【第二讲:Draw Call】
    OkHttpClient请求方式详解,及常用OkHttpUtils配置工具类
    搭建docker,docker搭建达梦数据库,详细【图文】
    【Unity】Unity开发进阶(六)UnityEvent使用与源码解析
  • 原文地址:https://blog.csdn.net/qq_48811377/article/details/133029555
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号