自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 Pytest 常见问题及其解决方案

Pytest 是一个强大且灵活的测试框架,但初学者在使用过程中难免会遇到各种问题。希望通过这篇文章,你能更好地应对常见的挑战,写出更高效、更稳定的测试代码。测试不是负担,而是保障。写好测试不仅能提高代码质量,还能让你在面对变更时更加从容自信。

2025-09-10 21:28:11 727

原创 Pytest 测试怎么写才不坑:7个高效技巧分享

写测试不是负担,而是给代码买保险。而写“好”的测试,就是让这份保险便宜、可靠、易理赔。易读的测试(别人一看就懂)易改的测试(需求变了也能快速调整)稳定的测试(不轻易失败,失败就有意义)

2025-08-29 22:12:50 882

原创 Pytest 接入CI/CD:实现代码一提交就自动测试

CI(Continuous Integration)持续集成:开发人员频繁地将代码合并到主分支,每次提交都自动运行测试。CD(Continuous Delivery/Deployment)持续交付/部署:在 CI 通过后,自动打包、发布或部署到环境。把 Pytest 接入 CI/CD,是提升项目质量和开发效率的关键一步。它不仅能帮你避免低级错误,还能让团队更有信心地发布代码。

2025-08-25 22:04:22 1020

原创 Pytest 插件怎么写:从0开发一个你自己的插件

写 Pytest 插件并不难!它本质上就是“在正确的时间,执行你想做的事”通过本文的实战,你已经掌握了编写插件的核心方法。无论是统计耗时、生成报告、还是集成监控系统,都可以通过插件实现。

2025-08-21 22:08:58 932

原创 Pytest + coverage.py:轻松搞定代码覆盖率

你的测试用例执行了多少比例的源代码。语句覆盖率(Line Coverage):多少行代码被执行了分支覆盖率(Branch Coverage):if/else 等分支是否都被测试到函数覆盖率(Function Coverage):多少函数被调用了100% 覆盖率 ≠ 没有 bug,但低覆盖率一定意味着风险!+ Pytest 是提升测试质量的黄金组合。它不仅能帮你发现遗漏的代码,还能让团队对测试进度有清晰的认知。

2025-08-17 21:15:18 795

原创 Pytest 插件使用指南:让你的测试更高效

Pytest 插件是一些可以扩展 Pytest 功能的模块,它们可以修改 Pytest 的行为、添加新命令行参数、提供新的 fixture、生成报告等。Pytest 本身就是一个核心框架,其大部分功能都通过插件来实现。Pytest 插件系统是其强大生态的基石。通过合理使用插件,你可以轻松实现测试报告生成、覆盖率统计、并行执行等功能,极大提升测试效率和质量。对于新手来说,从几个常用插件入手,逐步深入,是掌握 Pytest 的一条捷径。

2025-08-15 21:17:55 931

原创 Pytest 全流程解析:执行机制与报告生成实战指南

通过本文的学习,你应该已经掌握了以下内容:✅ Pytest 的基本执行流程与机制✅ 如何运行测试、查看结果、调试失败用例✅ 如何生成 HTML、JUnit XML、Allure 等多种格式的测试报告✅ 如何结合插件提升测试效率与可视化能力✅ 使用 Pytest 的最佳实践与注意事项掌握 Pytest 的执行流程和报告生成机制,不仅能帮助你更好地理解和调试测试用例,还能为自动化测试、持续集成打下坚实基础。

2025-08-11 22:09:43 1152

原创 Pytest 提升测试效率:你必须知道的 pytest.ini 技巧

pytest.ini是 Pytest 的配置文件之一(还有 pyproject.toml、setup.cfg 等),用于集中管理 Pytest 的运行行为。它通常放在项目根目录下,Pytest 在启动时会自动读取该文件中的配置。说明:虽然文件名是.ini,但它使用的是类 INI 格式,并非传统意义上的 Windows INI 文件。pytest.ini是 Pytest 项目中不可或缺的一部分。它不仅能帮你简化命令行操作,还能提升团队协作效率和测试可维护性。对于新手来说,掌握pytest.ini。

2025-08-09 11:43:45 1020

原创 Pytest Markers 使用指南:轻松对测试用例分类管理

标记(Marker)是 Pytest 提供的一种机制,用于给测试用例添加元数据(metadata),比如“这是一个冒烟测试”、“这个用例依赖网络”等。你可以通过标记来筛选执行特定的测试用例,也可以结合插件实现更高级的功能。上面的和就是标记。Pytest 的标记系统是组织和管理测试用例的强大工具。通过合理使用标记,你可以实现对测试用例的灵活分类、精准执行和高效维护。对于新手来说,从几个常用标记(如smokeslow)开始,逐步构建自己的标记体系,是提升测试效率的有效方式。

2025-08-06 22:06:32 753

原创 Pytest 参数化进阶:掌握 parametrize 的多种用法

本文深入介绍Pytest参数化测试@pytest.mark.parametrize的高级用法,包括:嵌套参数化实现多维度组合测试、自定义测试ID增强可读性、结合skip/xfail处理特殊用例、类级别参数化、从外部文件加载测试数据以及与fixture结合使用等技巧。文章通过代码示例展示了每种用法的具体实现,并总结了参数化测试的最佳实践,帮助开发者编写更高效、清晰的自动化测试代码。这些技巧能显著提升测试覆盖率和可维护性,是Pytest测试框架中提高测试效率的利器。

2025-07-27 20:27:56 1142

原创 Pytest tmp_path 实战指南:测试中的临时目录管理

tmp_path是 Pytest 提供的一个内置 fixture,它为每个测试函数提供一个唯一的临时目录路径(Pathlib 对象),用于创建、读写、删除文件等操作通过本文的学习,你应该已经掌握了以下内容:✅tmp_path的基本原理和作用✅ 如何使用它创建临时文件、目录并进行读写操作✅ 如何构建复杂文件结构进行集成测试✅ 如何使用实现模块级临时目录✅ 使用tmp_path的最佳实践与注意事项tmp_path是 Pytest 提供的一个非常实用的内置 fixture,它能帮助你轻松实现。

2025-07-25 21:17:22 457

原创 Pytest 输出捕获详解:掌握如何查看和控制打印信息

输出捕获(Output Capture)是指 Pytest 在执行测试时,会自动拦截程序中所有通过print()或等方式输出的内容,并将其保存起来,只有当测试失败时才会显示这些输出内容。避免大量无用输出干扰正常测试结果。提高测试报告的可读性。只展示出错时的调试信息,方便定位问题。通过本文的学习,你应该已经掌握了以下内容:✅ Pytest 默认如何捕获标准输出和标准错误✅ 如何使用-s参数控制输出是否显示✅ 如何通过capsysfixture 获取并断言输出内容✅ 如何在。

2025-07-21 21:52:41 707

原创 Pytest 命令行选项实战指南:轻松掌握测试执行技巧

摘要: Pytest命令行选项是控制测试行为的灵活工具,通过-v(详细模式)、-x(失败即停)、-k(名称筛选)等参数实现测试流程定制。支持组合使用(如pytest -v -x --tb=short),结合--ff(优先运行失败测试)、-m(标记筛选)等高级功能提升效率。推荐场景化组合命令,如调试用-s,修复后用--lf。注意避免滥用输出选项,合理搭配插件(如pytest-xdist并行执行),通过pytest --help探索更多可能性。掌握这些技巧可显著提升测试开发效率。 (字数:149)

2025-07-19 12:33:54 999

原创 Pytest 异常测试:如何验证你的代码真的“抛出了预期的错误”

本文介绍了使用Pytest进行异常测试的方法和最佳实践。主要内容包括:通过pytest.raises()上下文管理器验证代码是否抛出预期异常;结合参数化测试多组异常输入;验证自定义异常和异常消息;高级用法如预期失败标记、正则匹配异常消息等。文章还提供了关键注意事项,强调异常测试应作为正常流程的补充,并给出具体使用建议。这些技巧能帮助开发者编写更全面的测试用例,提升代码的健壮性和错误处理能力。

2025-07-16 21:16:53 440

原创 Pytest Fixtures 详解:轻松掌握测试逻辑复用与资源管理

返回数据(如测试配置、模拟对象)初始化环境(如启动浏览器、连接数据库)清理资源(如关闭连接、删除临时文件)Fixture 的特性如下1、可重用:多个测试可以共享同一个 fixture2、自动注入:测试函数通过参数名自动使用 fixture3、支持生命周期管理:可定义 setup 和 teardown 逻辑4、支持作用域控制:如 function、class、module、session 等通过本文的学习,你应该已经掌握了以下内容:✅ 什么是 Pytest Fixture 及其作用。

2025-07-14 22:03:17 870

原创 Pytest 跳过测试技巧:灵活控制哪些测试该跑、哪些该跳过

跳过测试(Skipping Tests)是指在执行测试过程中,有意识地跳过某些测试用例,使其不被执行,也不会被视为失败或成功。功能开发中,还未实现的功能。测试依赖特定环境(如数据库、网络等),当前不具备条件。已知问题等待修复,暂时不需要运行。适用于总是要跳过的测试,无论什么情况。@pytest.mark.skip(reason="功能尚未完成")SKIPPED [1] test_skip.py::test_add: 功能尚未完成本文的重点有以下几点:✅ 如何使用无条件跳过测试。

2025-07-12 22:24:07 565

原创 Pytest 预期失败测试:如何标记“已知问题”用例

预期失败(Expected Failure)是指我们明确知道某个测试会失败,但仍然保留该测试,用于监控未来是否“意外变好”或“仍按预期失败”。skip表示不执行测试。xfail表示执行测试,但接受它的失败。本文的重点有以下几点:✅ 什么是预期失败(XFail)✅ 如何使用标记测试✅ 如何根据条件动态标记预期失败✅ 如何识别“意外成功”的测试✅ 使用 xfail 的最佳实践和注意事项合理使用xfail,不仅能帮助你管理已知问题,还能提升测试的可读性和维护性。

2025-07-10 21:25:00 467

原创 Pytest 测试发现机制详解:自动识别测试函数与模块

测试发现(Test Discovery)是指 Pytest 在执行pytest命令时,会根据一定的规则自动查找并运行所有符合条件的测试模块和测试函数的过程。这种“约定优于配置”的设计使得开发者无需手动注册测试用例,极大地提高了测试效率和可维护性。虽然 Pytest 默认的命名规则已经很实用,但在实际项目中,有时我们需要调整这些规则以适应项目的命名习惯。可以通过修改pytest.ini文件来自定义测试发现规则。创建或修改项目根目录下的pytest.ini[pytest]: 匹配文件名以check_

2025-07-05 22:28:27 1182

原创 Pytest中的参数化测试:提升效率的利器

参数化测试是指将一组测试数据作为参数传递给测试函数,使得同一个测试函数可以针对多种输入数据进行验证。这种方法不仅可以减少重复代码,还能更全面地覆盖各种边界条件和异常情况。在这篇文章中,我们详细探讨了如何使用 Pytest 的参数化测试功能来提高测试效率。通过参数化测试,你可以轻松地为同一测试逻辑提供多种输入数据,从而更全面地验证代码的行为。关键点回顾参数化测试是一种强大的工具,用于简化测试代码并提高测试覆盖率。使用装饰器可以轻松实现参数化测试。在设计参数组合时,要兼顾覆盖率和执行效率。

2025-06-29 11:13:44 887

原创 Pytest 入门:测试函数与测试类详解

测试函数是最基本的测试单元,在 Pytest 中通过以test_开头的函数名来标识。每个测试函数都是一个独立的测试案例,用于验证特定的功能或行为是否符合预期。当你的测试用例变得复杂或者需要共享某些数据和方法时,可以使用测试类来组织测试函数。测试类是一个包含多个测试函数的类,通常也命名为以Test开头,并且类内部的方法名应以test_开头。首先,我们在在这篇文章中,我们一起学习了如何使用 Pytest 编写测试函数和测试类。通过这些基础技巧,你可以更好地组织和管理你的测试用例,确保代码的质量和可靠性。

2025-06-22 19:44:41 442

原创 Pytest 断言基础:轻松掌握测试验证技巧

断言是一种用于检查程序内部状态是否如预期的方法。如果断言失败(即条件不满足),则会抛出异常并报告错误信息,从而帮助开发者迅速定位问题所在。在 Pytest 中,你可以直接使用 Python 的assert关键字进行断言。Pytest 对assert做了增强处理,能够提供更详细的失败信息,便于调试。在这篇文章中,我们一起学习了如何使用 Pytest 进行基本的断言操作。如何使用assert进行数值、列表和布尔值的比较。如何捕获并验证异常。如何运行和查看测试结果。

2025-06-21 11:53:02 398

原创 初探 Pytest:编写并运行你的第一个测试用例

本文介绍了如何使用Pytest框架编写和运行第一个测试用例。首先在测试目录创建测试文件,导入待测的加法函数。然后按照Pytest命名规范编写测试逻辑,包含多个断言验证函数行为。最后详细说明了两种运行测试的方法:通过终端命令运行或使用PyCharm直接执行。测试通过后会显示相应的成功提示,帮助开发者快速验证代码功能。该教程适合初学者快速上手Python单元测试框架的基本使用流程。

2025-06-15 20:03:17 1223

原创 从零开始搭建 Pytest 测试框架(Python 3.8 + PyCharm 版)

本文介绍了使用Python 3.8和PyCharm搭建Pytest自动化测试框架的完整流程。内容包括:安装Python 3.8和PyCharm开发环境,在PyCharm中创建项目并安装Pytest插件,以及构建标准化的测试项目结构(tests测试脚本、utils工具类、config配置等目录)。这为初学者提供了从环境配置到项目组织的一站式指南,帮助快速上手Python自动化测试开发。

2025-06-07 18:42:46 1077

原创 初识 Pytest:测试世界的智能助手

你可以把Pytest想象成一个聪明又细心的机器人助手。你只需要告诉它:“去检查一下这些功能有没有问题。” 它就会自动帮你跑一遍测试,并告诉你哪些地方没问题,哪些需要修复。Pytest 是一个用于编写和运行自动化测试的 Python 工具它不是程序员才用的东西,也不是特别复杂的黑科技。相反,它的设计初衷就是让测试变得简单又高效。我们初步认识了Pytest它是一个用来做自动化测试的工具。它简单、强大、灵活,适合初学者使用。它可以帮助我们更高效、更可靠地验证代码的正确性。

2025-05-28 21:27:44 806

原创 Qt实战教程:设计并实现一个结构清晰、功能完整的桌面应用

通过本文的学习,你已经完成了从零开始构建一个功能完整的文本编辑器项目的全过程。Qt项目创建与结构组织主窗口UI设计核心功能实现(文件操作、编辑功能等)用户体验优化(自动保存提示、快捷键、国际化)部署与发布流程Qt不仅是一套优秀的GUI开发框架,更是一个功能强大的跨平台应用开发平台。动手实践一下,写一个属于自己的桌面软件。

2025-05-25 15:39:10 380

原创 提升Qt应用性能--全面解析关键技术与策略

通过本文的学习,我们了解了多种提高Qt应用程序性能的技术和策略,包括基础优化技巧、图形渲染优化、事件处理与线程管理以及资源管理与缓存等。这些优化措施不仅能显著提升你的Qt应用的表现,还能改善用户体验,增强产品的市场竞争力。

2025-05-17 15:14:23 539

原创 Qt模块化架构设计教程 -- 轻松上手插件开发

在Qt中,插件通常基于抽象基类(接口)来定义其行为。我们将定义一个名为IPlugin的接口,所有插件都必须实现这个接口。定义IPlugin接口Q_OBJECTpublic:// 插件的主要功能接口signals:在这个接口中,我们定义了两个纯虚函数name()和execute(),以及一个信号,用于从插件向主程序发送消息。Qt 插件机制的基础原理:通过定义统一的接口(IPlugin),实现主程序与插件之间的解耦;插件项目的构建方式:使用.pro。

2025-05-11 20:57:19 1490

原创 Qt国际化实战--精通Qt Linguist工具链

Qt Linguist工具链为我们的Qt应用添加多语言支持,从标记字符串、生成翻译文件、使用Qt Linguist进行翻译,到最后集成翻译文件到应用中,每一步都清晰明了。此外,如何实现动态语言切换以及处理复数形式,这些都是构建高质量多语言支持的关键因素。

2025-05-06 22:19:48 897

原创 深入探索Qt网络编程 -- 创建强大的RESTful服务客户端

GET: 请求获取指定资源的信息。POST: 向指定资源提交数据进行处理请求(例如提交表单、上传文件等)。服务器可能会根据接收到的数据创建新的资源。PUT: 请求服务器存储一个资源,如果该资源已经存在,则更新它。DELETE: 请求服务器删除指定的资源。

2025-05-01 11:32:35 1071

原创 QT构建即时通讯应用--WebSocket全面解析与实战指南

WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许服务器主动向客户端推送数据,这与传统的HTTP请求-响应模式形成了鲜明对比。WebSocket特别适用于需要实时更新的应用场景,如在线聊天室、实时协作工具等。通过本文的学习,我们了解了WebSocket协议的基本概念及其在现代应用程序中的重要性。Qt提供的QWebSocket和类为我们实现WebSocket客户端和服务器端应用提供了极大的便利。

2025-04-24 22:02:42 789

原创 深入探索Qt异步编程--从信号槽到Future

Qt提供了丰富的工具集来支持异步编程,无论是初学者还是有经验的开发者都能找到适合自己项目的解决方案。掌握这些技术不仅能提高应用程序的性能和响应性,还能显著增强用户体验。无论是使用信号和槽机制处理简单的异步事件,还是利用和QFuture进行复杂的后台计算,Qt都提供了灵活且强大的功能来满足各种需求。

2025-04-21 21:54:20 973

原创 QT之在多线程中如何优雅的处理资源泄漏

在多线程环境中处理资源泄漏问题需要综合运用多种技术和策略。RAII原则、同步机制、线程池、异常安全措施、定期检查和清理以及有效的日志记录和监控都是防止资源泄漏的重要手段。遵循这些最佳实践不仅能帮助我们构建更加健壮的应用程序,还能显著提升其性能和可靠性。

2025-04-16 21:59:57 840

原创 探索QThread的力量:多线程编程的最佳实践

了解了QThread的基本概念及其在多线程编程中的应用,遵循本文提到的最佳实践,包括避免直接继承QThread、合理使用同步机制、重视事件循环的作用以及妥善处理异常情况,能够显著提升应用的稳定性和性能。

2025-04-12 13:35:55 548

原创 QTSql全解析:从连接到查询的数据库集成指南

通过上述介绍,我们了解了如何使用QtSql模块来进行数据库集成,包括建立连接、执行查询、处理错误以及使用事务,掌握这些基本技能都将大大提升你的开发效率和应用的可靠性。

2025-04-08 22:05:27 679

原创 Qt中的数据解析--XML与JSON处理全攻略

通过上述介绍,我们可以看到Qt为处理XML和JSON提供了丰富而灵活的工具。无论是采用基于流的QXmlStreamReader还是树形结构的QDomDocument来解析XML,亦或是利用Qt的JSON类库来处理JSON数据,开发者都可以找到最适合自己的解决方案。

2025-04-02 21:54:24 710

原创 QT高效文件I/O编程--实用指南与最佳实践

遵循上述最佳实践,可以使你的文件I/O操作更加高效、可靠,并且易于维护。无论你是正在构建一个小型工具还是大型系统,关注这些细节都将有助于提升整体质量。

2025-03-26 22:10:39 513

原创 QT并发编程进阶--线程安全与同步技巧详解

无论是简单的互斥锁还是复杂的条件变量和读写锁,掌握这些技术对于构建高效、稳定的多线程应用至关重要。

2025-03-20 21:54:46 1199

原创 快速上手网络通信 -- Qt Network应用开发

无论是构建客户端应用还是服务器端应用,Qt Network模块都提供了强大且灵活的工具,可以满足各种场景及需求。

2025-03-15 14:18:50 708

原创 高效管理应用资源--Qt资源系统详解

通过本文的介绍,我们了解了Qt资源系统的基本概念和使用方法。无论是加载图标、翻译文件还是样式表,Qt的资源系统都能帮助我们高效地管理和访问应用资源。此外,通过动态加载资源的方法,我们还可以在运行时灵活处理资源文件。

2025-03-12 22:04:34 574

原创 事件系统之如何处理用户输入和其他事件

通过本文的介绍,我们了解了Qt事件系统的几个重要方面,包括如何处理用户输入事件(如鼠标和键盘事件)、定时器事件以及窗口事件。此外,还展示了如何使用事件过滤器来集中处理多个对象的事件,帮助你更好地设计和开发响应迅速、功能丰富的Qt应用程序。

2025-03-07 21:20:47 495

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除