pytest-dev/pytest-asyncio
一个 pytest 插件,让测试函数可以直接是协程,在测试中使用 await 调用 asyncio 代码。
- Star
- 1,669
- Fork
- 217
- 未关闭 Issue
- 53
- 最近提交
- 21小时前
这是什么?
pytest-asyncio 是一个 pytest 插件,用于测试基于 Python asyncio 库编写的代码。它允许把测试函数声明为协程,从而在测试中直接 await 异步调用,无需手动包装事件循环。
测试函数通过 asyncio 标记运行,pytest 会将其作为普通测试项执行。项目文档涵盖了配置选项,以及如何管理事件循环和异步 fixture。安装只需一条 pip 命令,插件安装后 pytest 会自动识别。
该插件不支持继承标准库 unittest 的测试类。这类场景可以改用 unittest.IsolatedAsyncioTestCase 或支持异步的测试框架。
核心功能
- 01通过 asyncio 标记运行协程测试函数。
- 02在测试函数体内直接 await 异步代码。
- 03作为标准 pytest 插件,用 pip 即可安装。
- 04提供事件循环和配置相关的文档说明。
适用场景
- 测试基于 asyncio 构建的异步 Web 服务处理函数或客户端。
- 编写调用异步数据库或网络库的集成测试。
- 为 pytest 测试套件中的异步 fixture 编写测试。
快速上手
- 1
使用 pip 安装 pytest-asyncio
pip install pytest-asyncio
使用前须知
- 不支持继承标准 unittest 库的测试类;请改用 unittest.IsolatedAsyncioTestCase。
收录于专题
标签
常见问题
- pytest-asyncio 是什么?
- 一个 pytest 插件,让测试函数可以直接是协程,在测试中使用 await 调用 asyncio 代码。 pytest-asyncio 是一个 pytest 插件,用于测试基于 Python asyncio 库编写的代码。它允许把测试函数声明为协程,从而在测试中直接 await 异步调用,无需手动包装事件循环。
- pytest-asyncio 可以免费使用吗?用的什么许可证?
- pytest-asyncio 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- pytest-asyncio 还在维护吗?
- 活跃维护中。pytest-asyncio 最近一次提交是在 2026年11月6日。
- pytest-asyncio 适合用来做什么?
- 测试基于 asyncio 构建的异步 Web 服务处理函数或客户端。 编写调用异步数据库或网络库的集成测试。 为 pytest 测试套件中的异步 fixture 编写测试。
- pytest-asyncio 怎么安装和运行?
- 使用 pip 安装 pytest-asyncio: pip install pytest-asyncio
- 在哪里获取 pytest-asyncio?
- 源代码和安装说明在 GitHub 上:https://github.com/pytest-dev/pytest-asyncio
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。