Python配置与测试利器:Hydra + pytest的完美结合
2023-12-16 18:03:19
简介: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 * y
if __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 items
test_hy.py .. [100%]
======================================================================= 2 passed in 0.04s =========
注意事项:Hydra 在 pytest 环境中的行为可能与在常规 Python 环境中的行为略有不同,因为 pytest 可能会干扰 Hydra 的工作方式。如果在测试中遇到任何问题,建议查阅 Hydra 和 pytest 的官方文档,或在相关社区寻求帮助。
实际上,可以利用 Hydra 的强大功能和 pytest 的灵活性,创建更复杂的测试和应用。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助
?
文章来源:https://blog.csdn.net/2301_77645573/article/details/135034257
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!