如何 10 分钟上手 pytest:新手也能看懂的完整教程 如何 10 分钟上手 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还在用print调试、用一堆unittest样板代码写测试吗pytest 是 Python 圈主流的可测试框架一行assert就能定义一个测试失败时还会把差异直接指给你看装完就能跑几乎零配置。这篇文章带你从安装到进阶玩法全程只贴最关键的代码。pytest 核心能力为什么它这么火先把卖点摊开说API 极简不写测试类、不写 setUp/tearDownassert就是全部零配置收集装完敲pytest当前目录的test_*.py自动被找到并执行fixtures 机制测试前的准备工作用装饰器声明一次框架负责创建和清理插件生态庞大覆盖率、并行执行、mock、Web 框架支持pip install即插即用支持 Python 3.10 与 PyPy3对现有 unittest 代码也有兼容层。下面三步让你亲眼看到它跑起来。三步极速上手第一步pytest 安装命令终端里执行pip install pytest装完可以直接pytest --version确认版本一切就绪。第二步pytest 第一个测试怎么写新建test_sample.py内容只需要三行def inc(x): return x 1 def test_answer(): assert inc(3) 4注意约定文件叫test_*.py函数叫test_*pytest 靠这个命名规则收集测试不需要注册任何东西。第三步命令行跑通 pytestpytest -v-v输出每个测试的状态。断言不成立时pytest 会打印出变量实际值与期望值的对比而不是干巴巴的一句AssertionError——对调试来说这比标准库unittest的输出友好得多。从简单断言到进阶fixtures、参数化与 markers光会写assert不够真正省事的是下面三个能力。用一个咖啡店点单的例子一次讲透。pytest fixtures自动准备与清理测试数据每个测试都需要一个装着咖啡基底的杯子重复造杯子很烦。用 fixture 声明一次框架会在每个测试前新建、用完丢弃import pytest pytest.fixture def cup(): return {contents: [coffee base]}测试函数只要把cup写进参数名数据就自动注入互不污染。完整用法见官方文档 doc/en/how-to/fixtures.rst。pytest parametrize参数化测试怎么写同一个加风味逻辑要验证香草、焦糖多种口味别复制函数用装饰器把数据喂进去pytest.mark.parametrize(flavor, [vanilla, caramel]) def test_add_flavor(cup, flavor): cup[contents].append(flavor) assert coffee base in cup[contents]两条数据自动展开成两个用例报告里也各自独立显示。写法参考 doc/en/how-to/parametrize.rst。pytest markers标记测试实现选择性运行有些测试跑得慢比如模拟 12 小时冷萃日常回归时想跳过pytest.mark.slow def test_cold_brew(): assert 12 0运行时用-m not slow就能按标记筛选pytest -m slow反过来只跑慢测试。标记机制说明在 doc/en/how-to/mark.rst。pytest 插件生态什么场景装哪个核心框架之外社区插件按需求挑就行别一次全装场景插件一句话说明想知道代码被测试覆盖了多少pytest-cov测试跑完顺手出覆盖率报告测试套件太慢pytest-xdist多进程并行pytest -n auto直接开跑单元测试要隔离依赖pytest-mock提供mockerfixture打桩三行搞定维护 Django 项目pytest-django把 ORM、请求工厂等能力接进 pytestpytest 的社区活跃度是它插件生态的底气早期核心开发就围绕这种线下聚会展开。想自己写插件可以看 doc/en/how-to/writing_plugins.rst。总结pytest 适合谁下一步做什么只要你写 Python 库、Web 服务或工具脚本且希望测试写起来快、报得清、跑得灵活pytest 就是最省事的选择——入门五分钟天花板却很高。下一步建议读一遍 doc/en/getting-started.rst然后在今天的工作代码里用pytest.fixture替换你手写的第一段准备工作。【免费下载链接】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),仅供参考