Плагин для pytest, который запускает тесты параллельно на нескольких CPU и позволяет циклически перезапускать падающие тесты.
pytest-dev/pytest-asyncio
Плагин для pytest, позволяющий писать тестовые функции как корутины и напрямую вызывать в них код asyncio через await.
- Звёзды
- 1,669
- Форки
- 215
- Открытые issues
- 53
- Последний коммит
- 21 час назад
Что это?
pytest-asyncio — плагин для pytest, который добавляет поддержку тестирования кода на базе библиотеки Python asyncio. Он позволяет объявлять тестовые функции как корутины и вызывать асинхронный код через await прямо в тесте, не оборачивая его вручную в код для работы с event loop.
Тесты помечаются маркером asyncio, а pytest запускает их как обычные тестовые элементы. В документации проекта описаны параметры конфигурации, а также способы управления event loop и асинхронными фикстурами. Для установки достаточно одной команды pip, после чего pytest автоматически обнаруживает плагин.
Плагин не поддерживает тестовые классы, унаследованные от стандартной библиотеки unittest. Для таких случаев проект рекомендует unittest.IsolatedAsyncioTestCase или фреймворки с поддержкой async.
Ключевые возможности
- 01Запускать тестовые функции-корутины, помеченные маркером asyncio.
- 02Вызывать асинхронный код через await прямо в теле теста.
- 03Работает как стандартный плагин pytest, устанавливаемый через pip.
- 04Документация по настройке и управлению event loop.
Сценарии использования
- Тестирование обработчиков или клиентов асинхронных веб-сервисов на базе asyncio.
- Написание интеграционных тестов, обращающихся к асинхронным библиотекам для работы с базами данных или сетью.
- Тестирование асинхронных фикстур, общих для набора тестов pytest.
Быстрый старт
- 1
Установите pytest-asyncio с помощью pip
pip install pytest-asyncio
Что важно знать
- Классы тестов, наследующие unittest, не поддерживаются; вместо них используйте unittest.IsolatedAsyncioTestCase.
В подборках
Темы
Частые вопросы
- Что такое pytest-asyncio?
- Плагин для pytest, позволяющий писать тестовые функции как корутины и напрямую вызывать в них код asyncio через await. pytest-asyncio — плагин для pytest, который добавляет поддержку тестирования кода на базе библиотеки Python asyncio. Он позволяет объявлять тестовые функции как корутины и вызывать асинхронный код через await прямо в тесте, не оборачивая его вручную в код для работы с event loop.
- pytest-asyncio можно использовать бесплатно? Какая у него лицензия?
- pytest-asyncio распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pytest-asyncio всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pytest-asyncio — 5 нояб. 2026 г..
- Для чего можно использовать pytest-asyncio?
- Тестирование обработчиков или клиентов асинхронных веб-сервисов на базе asyncio. Написание интеграционных тестов, обращающихся к асинхронным библиотекам для работы с базами данных или сетью. Тестирование асинхронных фикстур, общих для набора тестов pytest.
- Как установить pytest-asyncio?
- Установите pytest-asyncio с помощью pip: pip install pytest-asyncio
- Где скачать pytest-asyncio?
- Исходный код и инструкции по установке — на GitHub: https://github.com/pytest-dev/pytest-asyncio
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
BDD-фреймворк, который запускает feature-файлы Gherkin как тесты pytest без отдельного тестового раннера.
Python-пакет, который находит и запускает примеры кода в docstring, заменяя встроенный модуль doctest парсером на основе AST.
Библиотека Python, которая записывает HTTP-взаимодействия во время тестов и воспроизводит их позднее, чтобы тесты запускались офлайн и детерминированно.
Плагин для pytest, который запускает только тесты, затронутые недавними изменениями кода, и поддерживает непрерывный запуск в режиме наблюдения.
Плагин для pytest, который перемешивает порядок тестов и сбрасывает генераторы случайных чисел, чтобы воспроизводить сбои из-за порядка запуска или случайных данных.