素材阁

pytest 速查

共 25 条 pytest 常用写法,涵盖基础用法、Fixture、参数化、断言与异常、配置与扩展。 支持搜索与分类筛选,点击即可复制。

基础用法

函数名、文件名约定即可被自动发现。

命令说明
最小测试(文件名 test_*.py / *_test.py)
运行全部测试
详细输出并按名称筛选
运行指定测试
遇错即停

Fixture

依赖注入式的测试夹具。

命令说明
定义 fixture
在测试中按参数名注入
放置共享 fixture(自动被同目录及子目录发现)
作用域:function/class/module/package/session
yield 实现前置/后置清理

参数化

一套逻辑多组数据。

命令说明
参数化测试
自定义用例 id
生成多组数据
跳过用例
预期失败

断言与异常

诊断信息友好。

命令说明
普通断言(失败时给出上下文)
断言抛出异常
浮点近似比较
捕获输出与日志
临时替换(monkeypatch fixture)

配置与扩展

配置文件与常用插件。

命令说明
在 pyproject.toml 配置默认参数
其他配置位置
覆盖率(pytest-cov)
并行执行(pytest-xdist)
只跑上次失败 / 先跑上次失败

使用说明

pytest 速查:基础用法、Fixture、参数化、断言与异常、配置与扩展;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:基础用法、Fixture、参数化、断言与异常、配置与扩展。
  2. 点「命令」列复制到测试文件或终端。
  3. 用 fixture + conftest.py 抽公共准备/清理逻辑,避免重复。
  4. 一套逻辑多组数据用 @pytest.mark.parametrize。

常见问题

fixture 的 scope 怎么选?
function 最隔离但每次重建;启动成本高的(如数据库连接)用 module/session 复用,权衡隔离与速度。
为什么要把测试拆成小函数?
一个函数一个断言主题,失败信息更精准,也便于参数化与单独重跑。
需要联网吗?
不需要,本地可用。

延伸阅读

相关工具