Repolode
tarpas

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. 1

    Установите плагин с помощью pip

    pip install pytest-testmon
  2. 2

    Создайте базу данных зависимостей (она будет сохранена в .testmondata)

    pytest --testmon
  3. 3

    Измените часть кода, покрытую тестами

  4. 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 обновляется ежедневно.

Похожие проекты

Плагин для pytest, который перемешивает порядок тестов и сбрасывает генераторы случайных чисел, чтобы воспроизводить сбои из-за порядка запуска или случайных данных.

724+1 за неделю39PythonMITАктивно поддерживаетсяОбновлён 4 дня назад