ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

3步跑通pytest测试:Python新手快速上手指南

3步跑通pytest测试:Python新手快速上手指南 3步跑通pytest测试Python新手快速上手指南【免费下载链接】pytestThe pytest framework makes it easy to write small tests, yet scales to support complex functional testing项目地址: https://gitcode.com/GitHub_Trending/py/pytestpytest 是一个 Python 测试框架让你用熟悉的assert语句写单元测试几乎零配置。它适合刚开始写测试的新手也适合想让测试跑得更快的团队。一条命令安装几行代码就能验证你的功能对不对。3步装好并跑通第一个测试装好之后第一件事是跑一个通过的测试3 步就够第一步安装pip install pytest第二步在任意目录建一个test_sample.py内容不超过 5 行def inc(x): return x 1 def test_answer(): assert inc(3) 4第三步直接在命令行运行pytest看到1 passed的绿色提示闭环就跑通了。pytest 会自动收集当前目录下所有test_开头的文件和函数不用注册、不用写继承这是它和老式测试写法最大的区别。核心 API 都在 src/pytest/ 里想深挖实现可以看 src/_pytest/ 目录。把pytest测试带进计算器项目第一个用例通过后把它放进一个真实小项目里看看长什么样。假设你写了个计算器只有加减法# calculator.py def add(a, b): return a b def subtract(a, b): return a - b对应的test_calculator.py就是两个断言from calculator import add, subtract def test_add(): assert add(2, 3) 5 def test_subtract(): assert subtract(5, 3) 2然后运行pytest test_calculator.py -v。如果哪天你手滑把add写成了减法pytest 会打印出断言左右两边的实际值失败在哪一行、差在哪一眼就能定位不用自己加print调试。进阶3个提效套路项目变大后光靠裸assert会开始重复啰嗦。下面 3 个套路能明显减少体力活。1. fixture什么时候用 → 怎么做 → 好处什么时候用多个用例都要准备同一份资源建数据库连接、打开临时文件。怎么做用pytest.fixture装饰一个函数函数体里准备资源yield之后写清理import pytest pytest.fixture def conn(): c create_connection() yield c c.close()用例里直接写def test_xxx(conn):就能拿到这个资源。好处准备和清理只写一次所有用例复用且保证测试结束后一定被清理。2. parametrize 参数化一份逻辑多组数据什么时候用同一个功能想用 5 组输入验证。怎么做给用例加一行装饰器数据以列表给出import pytest pytest.mark.parametrize(a,b,expected, [(1, 2, 3), (0, 0, 0), (-1, 1, 0)]) def test_add(a, b, expected): assert add(a, b) expected好处一行装饰器顶三个重复用例跑完报告里每组数据单独显示通过与否。3. marker 标记只跑一部分测试什么时候用有几条用例很慢日常开发不想每次都等。怎么做给慢用例打标记pytest.mark.slow def test_heavy(): ...然后pytest -m not slow就跳过它们想专门跑慢的用pytest -m slow。好处测试集大了以后你可以按标记、按文件任意组合挑选要跑的范围调试快很多。完整的用法说明在 doc/en/ 目录写插件可以参考 doc/en/how-to/writing_plugins.rst。周边5个常用插件搭档学会这些套路后你会发现生态里还有一堆现成工具按需安装即可pytest-cov统计测试覆盖率告诉你哪些代码根本没被测到pytest-xdist多进程并行跑测试大项目提速最直接的一个pytest-mock内置 mock 支持不用自己手写假对象pytest-djangoDjango 项目专用帮你处理数据库、settings 等环境pytest-asyncio让async/await的异步函数也能被测试收尾pytest 的门槛低、上限高入门只需一条pip install往深了走还有 fixture 作用域、hook 插件机制一整套体系。建议先按上面的步骤在本地跑通一遍再打开自己的小项目试着写第一个test_文件比反复看教程收获大得多。【免费下载链接】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),仅供参考
返回列表