Repolode
pytest-dev

pytest-dev/pytest

一个 Python 测试框架,写小型测试简单,也能支撑应用和库的复杂功能测试。

可替代:unittest

Star
14,611
Fork
3,517
未关闭 Issue
877
最近提交
9小时前

这是什么?

pytest 是一个 Python 测试框架。测试就是普通函数,直接使用 assert 语句;断言失败时,pytest 会展示相关的中间值,方便定位问题,无需额外的断言辅助方法。

除了基础的测试自动发现,pytest 还提供模块化的 fixture,用于准备和共享测试资源,支持参数化以及不同的生命周期。它也可以开箱即用地运行现有的 unittest 和 trial 测试套件,便于逐步迁移。

框架采用插件架构,目前有 1300 多个外部插件。支持 Python 3.10 及以上版本以及 PyPy3。

核心功能

  • 01普通 assert 语句失败时给出详细信息,无需记忆 self.assert* 方法。
  • 02自动发现测试模块和测试函数。
  • 03模块化 fixture,用于管理小型或参数化的测试资源。
  • 04开箱即用运行现有的 unittest 和 trial 测试套件。
  • 05通过丰富的插件生态进行扩展。

适用场景

  • 为 Python 库或应用编写单元测试。
  • 使用共享的、参数化的初始化逻辑构建复杂的功能测试。
  • 将现有的 unittest 测试套件逐步迁移到更简洁的写法。

标签

常见问题

pytest 是什么?
一个 Python 测试框架,写小型测试简单,也能支撑应用和库的复杂功能测试。 pytest 是一个 Python 测试框架。测试就是普通函数,直接使用 assert 语句;断言失败时,pytest 会展示相关的中间值,方便定位问题,无需额外的断言辅助方法。
pytest 可以免费使用吗?用的什么许可证?
pytest 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
pytest 还在维护吗?
活跃维护中。pytest 最近一次提交是在 2026年10月19日。
pytest 适合用来做什么?
为 Python 库或应用编写单元测试。 使用共享的、参数化的初始化逻辑构建复杂的功能测试。 将现有的 unittest 测试套件逐步迁移到更简洁的写法。
在哪里获取 pytest?
源代码和安装说明在 GitHub 上:https://github.com/pytest-dev/pytest

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目