当前位置: 首页 > 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 的灵活性,创建更复杂的测试和应用。

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

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

相关文章:

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

简介:Hydra 和 pytest 可以一起使用,基于 Hydra Pytest 的应用可以轻松地管理复杂配置,并编写参数化的单元测试,使得Python开发和测试将变得更为高效。 安装: pip install hydra-core pytest案例源码:my…...

5.基于飞蛾扑火算法(MFO)优化的VMD参数(MFO-VMD)

代码的使用说明 基于飞蛾扑火算法优化的VMD参数 优化算法代码原理 飞蛾扑火优化算法(Moth-Flame Optimization,MFO)是一种新型元启发式优化算法,该算法是受飞蛾围绕火焰飞行启发而提出的,具有搜索速度快、寻优能力强的…...

爱创科技总裁谢朝晖荣获“推动医药健康产业高质量发展人物”

中国医药市场规模已经成为全球第二大医药市场,仅次于美国。近年来,随着中国经济的持续增长和人民生活水平的提高,医药市场需求不断扩大。政府对医疗卫生事业的投入也在不断加大,为医药行业的发展创造了良好的政策环境。为推动医药…...

055-第三代软件开发-控制台输出彩虹日志

第三代软件开发-控制台输出彩虹日志 文章目录 第三代软件开发-控制台输出彩虹日志项目介绍控制台输出彩虹日志实现原理真实代码 总结 关键字: Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QM…...

Os-hackNos-3

Os-hackNos-3 一、主机发现和端口扫描 主机发现,靶机地址192.168.80.145 arp-scan -l端口扫描,开放了22和80端口 nmap -P -sV 192.168.80.145二、信息收集 访问80端口 find the Bug You need extra WebSec翻译 找到Bug 你需要额外的网络安全路径扫描 d…...

时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测

时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测 目录 时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现HPO-ELM猎食者算法优化极限学习机时间序列预测 1.data为数据集…...

LeetCode:307. 区域和检索 - 数组可修改(树状数组 C++)

目录 307. 区域和检索 - 数组可修改 题目描述: 实现代码与解析: 树状数组: 原理思路: 307. 区域和检索 - 数组可修改 题目描述: 给你一个数组 nums ,请你完成两类查询。 其中一类查询要求 更新 数组…...

909-2015-T3

文章目录 1.原题2.算法思想2.1.求树的高度2.2.求路径 3.关键代码4.完整代码5.输出结果 1.原题 试编写算法,求给定二叉树上从根节点到叶子节点的一条路径长度等于树的深度减一的路径(即列出从根节点到该叶子节点的节点序列),若这样…...

【云原生】初识 Service Mesh

目录 一、什么是Service Mesh 二、微服务发展历程 2.1 微服务架构演进历史 2.1.1 单体架构 2.1.2 SOA阶段 2.1.3 微服务阶段 2.2 微服务治理中的问题 2.2.1 技术栈庞杂 2.2.2 版本升级碎片化 2.2.3 侵入性强 2.2.4 中间件多,学习成本高 2.2.5 服务治理功…...

常见的8个JMeter压测问题

为什么在JMeter中执行压力测试时,出现连接异常或连接重置错误? 答案:连接异常或连接重置错误通常是由于服务器在处理请求时出现问题引起的。这可能是由于服务器过载、网络故障或配置错误等原因导致的。 解决方法: 确定服务器的…...

深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序 计算机竞赛

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习?5.1.2 为什么要迁移学习? 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…...

羊大师教你如何有效解决工作中的挑战与压力?

在现代社会,工作问题一直是许多人头疼的难题。无论是从工作压力到职业发展,工作问题不仅会影响个人的心理健康,还可能对整个工作团队的效率和和谐产生负面影响。因此,如何有效解决工作问题成为了每个职场人士都需要面对的挑战。 …...

【性能测试】稳定性/并发压力测试的TPS计算+5W并发场景设计...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、稳定性测试TPS…...

人工智能的时代---AI的影响

人工智能(AI)是当前科技领域的一个热门话题,它正在以前所未有的速度改变着我们的生活方式和工作方式。从智能家居到自动驾驶,从智能医疗到智能金融,人工智能正在渗透到我们生活的方方面面。在这篇文章中,我…...

LeetCode 每日一题 2023/11/13-2023/11/19

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 11/13 307. 区域和检索 - 数组可修改11/14 1334. 阈值距离内邻居最少的城市11/15 2656. K 个元素的最大和11/16 2760. 最长奇偶子数组11/17 2736. 最大和查询11/18 2342. 数…...

Leetcode——169 多数元素

我的答案 class Solution {public int majorityElement(int[] nums) {int len nums.length;Arrays.sort(nums);int count 1;int res 0;if(len 1){return nums[0];}for(int i0; i<len-1; i){if(nums[i]nums[i1]){count;}else{count 1;}if(count>len/2){res nums[i]…...

vue中原生H5拖拽排序_拖拽图片也是同样的道理

原文地址【vue中原生H5拖拽排序_拖拽图片也是同样的道理】 H5有基于拖拽的事件机制&#xff0c;如果你还不熟悉&#xff0c;请看我之前的文章【拖拽上传】中有介绍。 原生拖拽API实现 由于比较简单直接上代码了&#xff1a; <!DOCTYPE html> <html lang"en&qu…...

【C语言】计算实时太阳角度(高度角、方位角),以及使用stm32单片机实时获取时间戳

整体计算方法 在编写该代码的过程中寻找了多篇博文和论文&#xff0c;综合所有文章且按网上的以0时的方位角的0&#xff0c;且随时间累加累加至360度。我修改了博文和论文的一些角度的计算方法。得到一下代码与网站计算的方位角相互验证过&#xff0c;误差不超过1 验证网站 太…...

创建git仓库

①git init&#xff1a;用于在一个现有的目录中初始化一个新的 Git 仓库。 # 进入你的项目目录&#xff0c;如果你想要在当前目录下初始化 Git 仓库。 git init 这会在当前目录下创建一个名为 .git 的子目录&#xff0c;其中包含 Git 仓库的所有必要文件和目录。&#xff08;…...

19.悲观锁与乐观锁解析

1.悲观锁 悲观锁比较悲观&#xff0c;它认为如果不锁住这个资源&#xff0c;别的线程就会来争抢&#xff0c;就会造成数据结果错误&#xff0c;所以悲观锁为了确保结果的正确性&#xff0c;会在每次获取并修改数据时&#xff0c;都把数据锁住&#xff0c;让其他线程无法访问该…...

ROPES:嵌入式系统开发的模型驱动方法论

1. ROPES&#xff1a;嵌入式系统开发的革命性方法论在嵌入式系统开发领域&#xff0c;我们常常面临一个核心矛盾&#xff1a;如何在高可靠性的硬实时要求与快速迭代的市场需求之间找到平衡&#xff1f;传统瀑布式开发周期长、反馈慢&#xff0c;而完全敏捷的方法又难以满足嵌入…...

以物理定律约束智能算法,用镜像技术重构时空感知

以物理定律约束智能算法&#xff0c;用镜像技术重构时空感知——镜像视界新一代空间智能可信技术白皮书前言当下空间智能与数字孪生产业&#xff0c;深陷纯数据驱动算法脱离物理逻辑、时空感知失真、推演结果不可控、系统可信度不足的行业困境&#xff0c;智能算法黑箱、时空基…...

如何安全永久保存微信聊天记录?WeChatMsg开源工具深度解析

如何安全永久保存微信聊天记录&#xff1f;WeChatMsg开源工具深度解析 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

基于AI Agent与语音技术的自动化电话系统构建指南

1. 项目概述&#xff1a;当AI拿起电话&#xff0c;它能做什么&#xff1f;最近在GitHub上看到一个挺有意思的项目&#xff0c;叫theopsio/ai-phone-caller。光看名字&#xff0c;你可能会觉得这又是一个“AI打电话”的玩具&#xff0c;但当我深入扒了扒它的代码和设计思路后&am…...

Casely:基于AI的测试用例自动化生成工具,从需求文档到TestRail导入

1. 项目概述&#xff1a;从混乱需求到结构化测试用例的自动化革命 如果你是一名QA工程师或者测试负责人&#xff0c;那么下面这个场景你一定不陌生&#xff1a;产品经理甩过来一个压缩包&#xff0c;里面是十几个不同时期、不同人写的PDF和Word文档&#xff0c;有的还是扫描件。…...

N_m3u8DL-RE架构深度解析:现代流媒体下载引擎的设计哲学与技术实现

N_m3u8DL-RE架构深度解析&#xff1a;现代流媒体下载引擎的设计哲学与技术实现 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_…...

AI-Rules:为AI应用构建声明式规则引擎,实现智能与规则的解耦

1. 项目概述&#xff1a;AI-Rules&#xff0c;一个为AI应用量身定制的规则引擎在AI应用开发领域&#xff0c;我们常常面临一个核心矛盾&#xff1a;一方面&#xff0c;我们希望模型能够灵活、智能地处理复杂多变的输入&#xff1b;另一方面&#xff0c;业务场景又要求输出必须严…...

为什么你的远程访问总是中断?luci-app-aliddns终极解决方案指南

为什么你的远程访问总是中断&#xff1f;luci-app-aliddns终极解决方案指南 【免费下载链接】luci-app-aliddns OpenWrt/LEDE LuCI for AliDDNS 项目地址: https://gitcode.com/gh_mirrors/lu/luci-app-aliddns 你是否曾经因为动态IP地址的变化而无法远程访问家中的NAS服…...

DesignPatternsPHP:迭代器模式遍历集合元素的终极指南

DesignPatternsPHP&#xff1a;迭代器模式遍历集合元素的终极指南 【免费下载链接】DesignPatternsPHP Sample code for several design patterns in PHP 8.x 项目地址: https://gitcode.com/gh_mirrors/de/DesignPatternsPHP 在PHP开发中&#xff0c;高效遍历集合数据是…...

突发:AISMM认证通道将于2026年Q2关闭旧版评估协议!现在不掌握V2.1动态基线,Q3招标直接出局

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;2026奇点智能技术大会&#xff1a;AISMM评估工具 AISMM&#xff08;Artificial Intelligence System Maturity Model&#xff09;评估工具是2026奇点智能技术大会正式发布的开源框架&#xff0c;旨在系…...