Repolode
pytest-dev

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. 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 数据每日更新。

相关项目