Пакет Python, который отправляет результаты coverage.py в coveralls.io и публикует статистику покрытия онлайн.
tarpas/pytest-testmon
Плагин для pytest, который запускает только тесты, затронутые недавними изменениями кода, и поддерживает непрерывный запуск в режиме наблюдения.
- Звёзды
- 1,034
- Форки
- 86
- Открытые issues
- 38
- Последний коммит
- 4 дня назад
Что это?
pytest-testmon — плагин для pytest, который отслеживает, от какого кода зависит каждый тест, и использует эту базу зависимостей, чтобы выбирать только тесты, затронутые недавними изменениями. При первом запуске с флагом --testmon создаётся база .testmondata; при последующих запусках выполняются только затронутые тесты, что ускоряет обратную связь при работе с большими наборами тестов.
Проект решает задачу определения затронутых тестов в таком динамическом языке, как Python, где одного статического графа импортов недостаточно. В документации описано, как отслеживаются зависимости и насколько надёжен отбор тестов. В связке с pytest-watch плагин может работать как средство непрерывного запуска тестов, повторно запуская нужные тесты при каждом сохранении.
Пакет устанавливается через pip и включается одним флагом --testmon. Кроме того, проект предлагает добровольную программу, в рамках которой сопровождающие настраивают testmon в CI проектов с открытым исходным кодом.
Ключевые возможности
- 01Записывает зависимости между тестами и кодом в локальную базу .testmondata.
- 02Повторно запускает только тесты, затронутые недавними изменениями файлов.
- 03Работает как плагин для pytest, который включается флагом --testmon.
- 04В связке с pytest-watch непрерывно запускает тесты при сохранении файлов.
Сценарии использования
- Ускорение локального прогона тестов в крупном Python-проекте с медленным набором тестов pytest.
- Быстрый запуск части тестов во время активной разработки.
- Настройка непрерывного тестирования с повторным запуском затронутых тестов при каждом изменении.
Быстрый старт
- 1
Установите плагин с помощью pip
pip install pytest-testmon - 2
Создайте базу данных зависимостей (она будет сохранена в .testmondata)
pytest --testmon - 3
Измените часть кода, покрытую тестами
- 4
Запустите только тесты, на которые повлияли недавние изменения
pytest --testmon
Что важно знать
- Выбор тестов основан на отслеживании зависимостей, поэтому его надежность зависит от структуры кода.
В подборках
Темы
Частые вопросы
- Что такое pytest-testmon?
- Плагин для pytest, который запускает только тесты, затронутые недавними изменениями кода, и поддерживает непрерывный запуск в режиме наблюдения. pytest-testmon — плагин для pytest, который отслеживает, от какого кода зависит каждый тест, и использует эту базу зависимостей, чтобы выбирать только тесты, затронутые недавними изменениями. При первом запуске с флагом --testmon создаётся база .testmondata; при последующих запусках выполняются только затронутые тесты, что ускоряет обратную связь при работе с большими наборами тестов.
- pytest-testmon можно использовать бесплатно? Какая у него лицензия?
- pytest-testmon распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pytest-testmon всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pytest-testmon — 2 нояб. 2026 г..
- Для чего можно использовать pytest-testmon?
- Ускорение локального прогона тестов в крупном Python-проекте с медленным набором тестов pytest. Быстрый запуск части тестов во время активной разработки. Настройка непрерывного тестирования с повторным запуском затронутых тестов при каждом изменении.
- Как установить pytest-testmon?
- Установите плагин с помощью pip: pip install pytest-testmon Создайте базу данных зависимостей (она будет сохранена в .testmondata): pytest --testmon Измените часть кода, покрытую тестами Запустите только тесты, на которые повлияли недавние изменения: pytest --testmon
- Где скачать pytest-testmon?
- Исходный код и инструкции по установке — на GitHub: https://github.com/tarpas/pytest-testmon
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека Python, которая записывает HTTP-взаимодействия во время тестов и воспроизводит их позднее, чтобы тесты запускались офлайн и детерминированно.
Плагин для pytest, который запускает тесты параллельно на нескольких CPU и позволяет циклически перезапускать падающие тесты.
Плагин для pytest, позволяющий писать тестовые функции как корутины и напрямую вызывать в них код asyncio через await.
BDD-фреймворк, который запускает feature-файлы Gherkin как тесты pytest без отдельного тестового раннера.
Плагин для pytest, который перемешивает порядок тестов и сбрасывает генераторы случайных чисел, чтобы воспроизводить сбои из-за порядка запуска или случайных данных.