重构一份应用pytest框架的测试代码

从混乱到清晰:我是如何用Pytest Fixture和Conftest重构一个老旧Python项目的测试代码的 本文详细介绍了如何使用Pytest Fixture和Conftest重构老旧Python项目的测试代码,解决重复代码、脆弱性和可读性差等问题。通过实战案例展示了fixture的高级用法、作用域控制和conftest.py的跨模块共享,最终提升测试代码的可维护性、可靠性和性能。 阅读详情

项目中有份API测试的代码的结构大致如下

/api_test
– test_device_api01_via_lan.py
– test_device_api02_via_lan.py
– test_device_api03_via_lan.py
– test_device_api01_via_wan.py
– test_device_api02_via_wan.py
– test_device_api03_via_wan.py

很容易猜到其实这里是重复的2份代码,只是因为执行测试的时候,有一份是通过lan测试,另一份是通过wan测试。每次修改代码,还需要把修改同步到相应的lan或者wan的代码上去……

但是又不能简单的做个循环,把lan/wan的地址丢进去当参数,因为项目目前运行是需要收集JUnit格式的测试报告的,优化代码后,还需要拿到和之前一样或者差不多的报告,好显示在Jenkins上。

今天实在不能忍了,花点时间研究了下,有如下解决办法。

项目根目录上新建一个conftest.py,内容如下

def pytest_generate_tests(metafunc):
    idlist = []
    argvalues = []
    for scenario in metafunc.cls.scenarios:
        idlist.append(scenario[0
Python TDD实战:红绿重构循环与pytest环境搭建指南 测试驱动开发(TDD)是一种通过编写测试来驱动软件设计的开发方法,其核心在于“测试先行”的纪律性。TDD遵循“红-绿-重构”的循环流程:首先编写一个会失败的测试(红),然后用最简单的方式实现功能使测试通过(绿),最后在不改变外部行为的前提下优化代码结构(重构)。这种方法能显著提升代码质量、可维护性和开发信心,尤其适用于构建库、框架或需要长期维护的项目。在Python生态中,pytest是实践TDD的首选工具,它提供了简洁的语法、强大的Fixture机制和参数化测试支持,能有效管理测试上下文并模拟外部依赖。通 阅读详情

相关推荐

Python自动化测试框架pytest:从入门到精通实战指南

在软件测试领域,自动化测试框架是提升测试效率与质量的核心工具。pytest作为Python生态中最主流的测试框架,以其简洁的语法、强大的扩展性和灵活的插件体系,成为现代测试工程化的首选。其核心原理基于“约定优于配置”的设计哲学,通过自动发现测试用例、支持参数化测试和Fixture依赖注入等机制,显著降低了测试代码的编写和维护成本。在技术价值层面,pytest不仅提升了测试执行速度与覆盖率,更通过丰富的插件生态(如pytest-html、pytest-xdist、allure-pytest等)支持分布式测试、

weixin_30301449的博客 728

Python测试框架pytest:从入门到精通,告别unittest的繁琐

在软件工程实践中,单元测试是确保代码质量、提升开发效率的关键环节。Python作为主流编程语言,其内置的unittest框架虽然经典,但在测试用例管理、断言编写和资源管理方面存在诸多不便。pytest作为Python社区的事实标准测试框架,通过“约定优于配置”的设计哲学,实现了测试的自动发现与执行,大幅减少了样板代码。其核心价值在于提供了简洁直观的assert断言、灵活强大的Fixture固件系统,以及参数化测试、丰富插件生态等高级功能,能高效支撑从单元测试到集成测试的各类场景。本文聚焦pytest的Fix

499

Pytest断言艺术:如何用异常捕获提升测试代码的优雅性

本文深入探讨了如何利用Pytest的`pytest.raises`与`assert`组合,提升测试代码的优雅性和可维护性。通过异常捕获、高级匹配技巧和断言协同,展示了编写既严谨又富有表现力的测试代码的艺术,帮助开发者构建高质量的Python测试套件。

weixin_28834765的博客 261

Python单元测试实战:pytest框架核心特性与可维护测试代码编写指南

单元测试是软件工程中保障代码质量、降低技术债务的核心实践。其原理在于通过隔离测试最小代码单元(如函数、方法),验证其行为是否符合预期,从而在早期发现缺陷,提升代码可维护性与重构信心。在Python生态中,pytest框架凭借其简洁的约定优于配置理念、强大的断言系统以及灵活的固件(Fixture)机制,成为实现高效单元测试的首选工具。通过pytest,开发者可以轻松管理测试资源生命周期,编写参数化测试用例,并利用Mock技术隔离外部依赖,构建出清晰、可维护的测试套件。这些实践对于构建健壮的后端服务、数据分析管

weixin_34159110的博客 345

Python TDD实战:从零构建Todo应用,掌握红绿重构循环

测试驱动开发(TDD)是一种提升代码质量和设计清晰度的核心软件工程实践。其原理遵循“红-绿-重构”循环:先编写一个失败的测试定义需求,再用最简单代码使其通过,最后在测试保护下优化内部结构。这种模式的技术价值在于为代码重构提供安全保障,并即时反馈设计问题,从而构建出健壮、可维护的系统。在Python开发中,结合pytest框架、fixtures和mock技术,TDD能高效应用于构建如Todo List等实际应用模块,确保每个功能点都具备可验证的测试覆盖。本文通过一个具体的命令行待办事项应用开发实例,详细展示了

weixin_34037515的博客 339

数字IC后端面试题目汇总含解析,ICer上岸必备!

今天IC修真院为大家带来了数字IC后端的面试题目,希望大家能够用得上。

coachip的博客 2447

小红书UID泄露风险揭秘:如何防止你的手机号被社工库关联(附防护指南)

本文揭示了小红书UID泄露的严重风险,详细解析了UID与手机号关联后被社工库利用的完整链条。通过分析黑产的数据整合技术,提供从基础到进阶的防护策略,包括密码管理、账号隔离和应急响应措施,帮助用户有效防范个人信息泄露风险。

ol789012345的博客 1501

Acute逻辑分析仪TL4134E实战:从触发电平到协议解析的完整避坑指南

本文是一份针对Acute逻辑分析仪TL4134E的实战避坑指南。文章深入解析了触发电平分组、采样率与存储深度权衡、高级触发等核心概念,并提供了混合电压系统测量、eMMC调试内存优化、SPI/I2C/UART协议解析排错等具体配置技巧,帮助硬件工程师和嵌入式开发者高效捕获与分析数字信号,快速定位通信问题。

weixin_29207149的博客 404

腾讯会议录屏损坏修复:使用 recover_mp4 工具的完整解决方案

腾讯会议录屏损坏修复指南 当腾讯会议录屏因电脑蓝屏等意外导致MP4文件损坏时,可使用recover_mp4工具结合FFMPEG进行修复。操作步骤包括:1)准备相同参数正常视频作为参考;2)分析正常视频生成结构文件;3)分离损坏视频的音视频流;4)使用FFMPEG重新封装。该方法能有效修复因意外中断导致的视频索引损坏问题。修复前需将工具和文件放在同一目录下,并确保参考视频与损坏录屏的参数完全一致。

m0_62498496的博客 2624

运用AD进行stm32最小系统PCB图的绘制

运用AD进行stm32最小系统PCB图的绘制一、PCB图的绘制(1)布局(2)布线(3)覆铜(4)电气规则检查二、给PCB添加logo三、生成garber文件总结 一、PCB图的绘制 (1)布局 1.画好原理图后,新建一个PCB项目 2.在Design中选择第二项,导入器件 3.先点击右下角第一项,再点第二项导入器件 导入成功 4.导入后效果 选择紫红色方框,按电脑上的delete键把它删掉 5.在Tools选择Outside Board,自动排布器件 排布后效果如图 6.画线,确定板子范围

lucario1的博客 2149

Qt入门教程【环境搭建篇】Qt6+Mingw+QMake+QtCreator

Qt Windows平台安装

小鱼酱的博客 2万+

大模型部署指南:SGLang 框架

本文介绍使用 SGLang 框架部署大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1610

基于Python的SEC Edgar文件高效爬取:最新技术与实战指南

本文详细介绍了如何使用Python最新技术高效爬取SEC Edgar数据库中的金融文件。我们将探讨SEC Edgar系统的结构、合法爬取注意事项,并使用现代Python库如Requests-HTML、aiohttp和Playwright实现多种爬取方案。文章包含完整的代码示例、性能优化技巧以及数据处理方法,为金融数据分析师、研究人员和开发者提供全面指导。关键词:SEC Edgar、Python爬虫、金融数据、异步爬取、Playwright、XBRL解析。

2201_76125261的博客 633

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: pytest测试框架中的setup和tearDown - 1
python012
博客等级 码龄12年 34粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值