新闻详情

新闻详情

首页 / 资讯中心 / 详情

3 分钟上手 pytest:从安装到跑通第一个测试的完整指南

发布时间:2026/9/12 15:33:29来源:尧图网络
3 分钟上手 pytest:从安装到跑通第一个测试的完整指南
3 分钟上手 pytest从安装到跑通第一个测试的完整指南【免费下载链接】pytestThe pytest framework makes it easy to write small tests, yet scales to support complex functional testing项目地址: https://gitcode.com/GitHub_Trending/py/pytest写测试最磨人的往往不是逻辑而是模板代码。用标准库写一个用例先继承类、再 setUp最后self.assertEqual才能断言一遍。pytest 就是为了解决这件事而生的 Python 测试框架你写普通函数用assert断言然后一条命令跑完全部测试。这篇 pytest 教程带你从安装、最小示例到 fixture、参数化走完入门路径。为什么换个姿势写测试假设你要验证2 2等于4。用 unittest 你得先建类、写 setUp断言还得挑方法用 pytest 只需要一个函数加一行assert。更实际的好处在后面pytest 收集失败的测试时会自动把关键变量当时的值打在输出里。你在断言里看到1 2这样的提示而不是一句干巴巴的 Failed。一行命令装好 pytest安装只有一步pip 拉取即可pip install pytest装完后终端里敲pytest --version能看到版本号就说明环境就绪。你的第一个测试用例怎么写下面这个文件演示最简形态一个被测函数一个测试函数一个断言。# test_sample.py def inc(x): return x 1 def test_answer(): assert inc(3) 4在文件所在目录运行pytest它会自动找到所有以test_开头的文件并执行结尾用绿色passed标出结果。约定比配置重要文件名带test_前缀、函数名以test_开头就会被自动收集。fixture把重复准备逻辑抽出来数据库连接、临时目录、测试账号……每个用例都要准备的逻辑pytest 用 fixture 集中管理。fixture 就是一个打了装饰器的函数用例按名字声明依赖用完自动清理。import pytest pytest.fixture def client(): c {db: connected} yield c c[db] closed def test_ping(client): assert client[db] connectedyield前后的代码分别对应准备和收尾。临时目录场景更省事直接用内置的tmp_pathfixture 就能拿到一个隔离目录用完自动删。parametrize一条测试覆盖十组输入参数化pytest.mark.parametrize是减少重复最有效的手段。一个装饰器就能让同一个用例跑多组数据报告里每条结果单独编号哪个输入挂了能一眼定位。import pytest pytest.mark.parametrize((a, b, expect), [ (1, 2, 3), (0, 0, 0), (-1, 1, 0), ]) def test_add(a, b, expect): assert a b expect进阶技巧marker、跳过与缓存用pytest.mark.slow给用例打标记marker之后pytest -m not slow就能在 CI 里跳过慢测试。环境相关的问题用pytest.mark.skip(reason...)跳过带原因团队不会互相追问。-x参数让首个失败就停下适合排错-k test_add按名字筛选--lf只跑上次失败的用例回归验证很快。内置缓存插件会记住失败集合配合--lf使用这就是上条的来源。常见报错与解决 ️现象原因解法no tests ran文件或函数不符合test_命名约定或在别处改命名或直接pytest 路径指到测试文件ImportError/ 找不到包被导入的模块不在sys.path上改用python -m pytest运行它会带上当前目录断言失败但看不全变量长字符串被截断加-vv展开完整值测试间互相污染共享状态没清掉用 fixture 的收尾代码清理或tmp_path隔离数据生态扩展按需装插件pytest 的 hook 机制允许外部代码插进收集、执行、报告各环节社区插件因此很活跃。按需安装几个最常用的pytest-cov跑完测试直接给出覆盖率报告pytest-mock注入mockerfixturepatch 任意对象pytest-xdist多进程并行大套件提速明显pytest-djangoDjango 项目专用的数据库与客户端 fixture。装法都是pip install 插件名装完自动生效不需要额外配置。谁适合用谁可以先放一放一句话对比主流选择unittest 是标准库、零依赖适合极简单场景pytest 上手同样快但断言检查、fixture 系统、插件生态明显更完整是大多数 Python 项目的事实标准。适合你写脚本和小库、做 Web 后端Flask/FastAPI/Django、想在 CI 里自动跑测试、希望失败输出能直接看懂。不适合你只在 Jupyter 里跑验证代码或团队要求跨语言统一测试框架。下一步往哪读仓库里自带了文档建议按这个顺序推进先用 how-to 快速上手指南 把命令行参数过一遍再深入 fixture 参考 理解作用域与依赖最后逛 插件列表 看看还有哪个轮子能替你省事。如果要在本地浏览源码和示例仓库地址是 https://gitcode.com/GitHub_Trending/py/pytest 。跑通第一个assert只是开始——把重复的准备逻辑收进 fixture把重复的输入交给 parametrize你的测试套件会一直保持轻和快。【免费下载链接】pytestThe pytest framework makes it easy to write small tests, yet scales to support complex functional testing项目地址: https://gitcode.com/GitHub_Trending/py/pytest创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Actual 怎么套用官方自定义规则示例处理收款人与转账自动化 2026/9/12 16:18:35

Actual 怎么套用官方自定义规则示例处理收款人与转账自动化

Actual 怎么套用官方自定义规则示例处理收款人与转账自动化 【免费下载链接】actual A local-first personal finance app 项目地址: https://gitcode.com/GitHub_Trending/ac/actual 银行导入的交易收款人名称经常每笔略有不同,Actual 会为每个新名称各建一…

阅读更多 →
如何用 MSAL 在 Refine 中接入 Azure AD B2C 登录? 2026/9/12 16:18:35

如何用 MSAL 在 Refine 中接入 Azure AD B2C 登录?

如何用 MSAL 在 Refine 中接入 Azure AD B2C 登录? 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitHub_Trending/re/refine …

阅读更多 →
Beads 的 MCP Server 集成指南:在无 Shell 环境中让 Coding Agent 使用 bd 管理任务 2026/9/12 16:18:35

Beads 的 MCP Server 集成指南:在无 Shell 环境中让 Coding Agent 使用 bd 管理任务

Beads 的 MCP Server 集成指南:在无 Shell 环境中让 Coding Agent 使用 bd 管理任务 【免费下载链接】beads Beads - A memory upgrade for your coding agent 项目地址: https://gitcode.com/GitHub_Trending/beads1/beads Beads(bd)…

阅读更多 →
专业截图工具的核心功能与高效使用指南 2026/9/12 16:18:35

专业截图工具的核心功能与高效使用指南

1. 为什么我们需要更专业的截图工具?在日常工作和内容创作中,截图是最基础却最频繁的需求之一。微信和QQ自带的截图功能确实方便,但用久了就会发现很多痛点:截长图经常拼接错位、标注工具太过简陋、输出画质被压缩、无法精确控制截…

阅读更多 →
Cognition SWE-2 与 Devin Voice 拆解:2.8 万亿参数强化学习把编程成本砍掉 70%,全双工语音结对编程 2026/9/12 16:18:35

Cognition SWE-2 与 Devin Voice 拆解:2.8 万亿参数强化学习把编程成本砍掉 70%,全双工语音结对编程

Cognition SWE-2 与 Devin Voice 拆解:2.8 万亿参数强化学习把编程成本砍掉 70%,全双工语音结对编程9 月 10 日,Cognition 给 AI 程序员 Devin 装了一条电话线。同一天,它发布了自研模型 SWE-2。SWE-2 在 FrontierCode 1.1 基准拿…

阅读更多 →
WezTerm `webgpu_preferred_adapter` 配置详解:精确指定 WebGpu 渲染所用的 GPU 适配器 2026/9/12 16:15:35

WezTerm `webgpu_preferred_adapter` 配置详解:精确指定 WebGpu 渲染所用的 GPU 适配器

WezTerm webgpu_preferred_adapter 配置详解:精确指定 WebGpu 渲染所用的 GPU 适配器 【免费下载链接】wezterm A GPU-accelerated cross-platform terminal emulator and multiplexer written by wez and implemented in Rust 项目地址: https://gitcode.com/Git…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞