尧图精选

pytest 快速上手全指南:5 分钟跑通你的第一个 Python 测试框架

🕒 发布时间:2026/9/12 15:37:48 📁 来源:尧图网络
pytest 快速上手全指南5 分钟跑通你的第一个 Python 测试框架【免费下载链接】pytestThe pytest framework makes it easy to write small tests, yet scales to support complex functional testing项目地址: https://gitcode.com/GitHub_Trending/py/pytest有没有这种经历写个测试得先建 TestCase 类assert 满天飞结果一失败只给你一句AssertionError实际值、期望值全得自己心算pytest 就是一个 Python 测试框架专治这种痛——普通函数加原生assert就能写测试失败了它还会自动把两边的值打印出来给你对。pytest 到底帮你解决什么一句话定位用最小的样板代码把写测试—跑测试—看结果这三步压缩到最短。原生 assert 直接断言不用记assertEqual、assertTrue这些方法名assert add(2,3) 5写完就能跑失败了报错信息里会带上左右两边的实际值省掉你逐行加 print 排查的时间自动收集测试函数名带test_前缀就会被自动发现执行不用注册、不用配置入口新文件放进来即生效fixture 管理测试资源临时文件、数据库连接这类用前准备、用后清理的活交给 fixture测试函数里只关心业务本身参数化一套代码跑多组数据同一逻辑想验证 10 组输入一行parametrize搞定失败时精确告诉你哪一组挂的5 分钟跑起来pytest 安装命令与最小示例 一条命令装完pip install pytest写一个最小测试文件两个函数# test_demo.py def add(a, b): return a b def test_add(): assert add(2, 3) 5然后直接跑pytest test_demo.py末尾看到1 passed in 0.01s就说明跑通了。更多安装细节可以翻官方文档doc/en/getting-started.rst一个真实小例子给计算器函数写测试需求calc.py里有两个函数add和sub希望加法的正数、零、负数场景都覆盖到。被测代码精简到只剩函数体# calc.py def add(a, b): return a b def sub(a, b): return a - b测试代码注释都在帮你省脑子# test_calc.py import pytest from calc import add, sub # 一行 parametrize 三组测试数据比复制三个函数体清爽多了 pytest.mark.parametrize((a, b, expect), [(2, 3, 5), (0, 0, 0), (-1, 1, 0)]) def test_add(a, b, expect): assert add(a, b) expect def test_sub(): assert sub(5, 3) 2执行pytest -v test_calc.py末尾看到4 passed3 组加法参数 1 个减法用例全部通过。这时候你故意把add里改成return a - b再跑一次3 个加法用例会同时标红而且每条失败信息里都带具体的入参组合——哪组数据算错了一眼定位不用猜。参数化的完整写法见doc/en/how-to/parametrize.rst老用户才懂的几个技巧别再写 unittest 类式样板了——只断言不依赖状态的测试直接写test_开头的函数pytest 自动收集省掉类、setUp、self一整套仪式优先用pytest.mark.parametrize批量喂数据别对同一逻辑复制 N 个断言函数失败报告里每组参数都会单独列出建议临时文件一律用内置tmp_pathfixture目录自动建、自动清别手写删除逻辑用法参考doc/en/how-to/tmp_path.rst建议日常跑-v看单条结果CI 上加--junitxmlreport.xml自动归档报告别靠肉眼看终端滚屏别把代码拷进 IDE 反复调试——命令行加--pdb测试失败原地进 pdb 断点变量随手查排查时间能砍一半什么情况下不适合用它⚠️ 如果你的测试对象不是 Python 代码或者要做大量 GUI 级别、跨进程的端到端场景pytest 不是合适的工具——它的主场是 Python 项目里的单元测试和功能测试边界外的事交给专门的工具去做更省事。生态里值得装的几个插件pytest-cov装上之后加一个--cov参数直接出代码覆盖率报告不用再单独维护 coverage 流程pytest-xdist加上-n auto让用例多核并行跑几百条用例的套件时间能砍掉一大截pytest-mock测试函数里白拿一个mockerfixturemock 第三方调用一行搞定省掉手写unittest.mock的样板fixture 机制本身的参考文档doc/en/reference/fixtures.rst不管你是接手老库要补测试还是新项目从零搭质量防线只要写的是 Python 代码这套装个包 写函数 敲 pytest的流程就够你开工了。官方文档入口doc/en/【免费下载链接】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),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →