tox

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: tox.wiki

tox — это инструмент автоматизации тестирования и управления средами для проектов на языке Python. Он позволяет описывать набор виртуальных окружений и команд, которые должны выполняться в каждом окружении, включая запуск тестов, проверку линтером, сборку документации и другие задачи. Основная цель проекта — упростить воспроизводимость и интеграцию процессов проверки совместимости с разными версиями интерпретатора и наборами зависимостей как в локальной разработке, так и в системах непрерывной интеграции.

Изначально разработанный для стандартизации и централизованного запуска тестовых сценариев, tox использует конфигурационный файл, в котором задаются «envlist» — перечень сред, а также сценарии команд и зависимости для каждой среды. При выполнении tox создаёт виртуальные окружения, устанавливает указанные зависимости и последовательно выполняет прописанные команды, обеспечивая изоляцию и предсказуемость результатов. Инструмент поддерживает расширяемость через плагины и интеграцию с большинством популярных тестовых фреймворков и средств статического анализа кода.

  • Управление виртуальными окружениями: автоматическое создание и конфигурация изолированных сред для разных версий Python и разных наборов зависимостей.
  • Конфигурация через файл: центральный конфигурационный файл позволяет описать envlist, зависимости и последовательность команд для каждого окружения.
  • Запуск тестов и команд: последовательный или параллельный запуск тестовых сборок, линтеров, проверок типов и других задач в заданных средах.
  • Изоляция и воспроизводимость: выполнение задач в чистых окружениях снижает влияние локальных настроек и обеспечивает повторяемость результатов на разных машинах и в CI.
  • Интеграция с CI: удобная интеграция в конвейеры непрерывной интеграции для проверки совместимости проекта с несколькими интерпретаторами и конфигурациями зависимостей.
  • Расширяемость: поддержка плагинов и пользовательских команд для адаптации поведения под специфические требования проекта.
  • Управление зависимостями: возможность указать отдельные зависимости для каждого окружения и использовать разные способы их установки.
  • Кросс-платформенность: совместимость с основными операционными системами при условии наличия соответствующих версий Python.
  • Отладка и вывод логов: подробный вывод выполнения команд и ошибок для упрощения диагностики проблем в средах.
Подробнее