Обновление 2015–09–14: в версии 2.0.5 исправлены все обнаруженные до сих пор ошибки регрессии. Читайте оригинальную историю…

Green – это чистый, красочный и быстрый инструмент для запуска модульных тестов Python.

После тонны тяжелой работы, большая часть которой была сделана Сэмом Спилсбери, щедрым автором кода, наконец-то вышла версия 2.0.0!

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

  1. «Тестовые модули» — раньше в многопроцессорном режиме зеленого цвета рабочие процессы обрабатывались на уровне отдельных тестов. Это привело к большому количеству повторяющихся накладных расходов, связанных с загрузкой, настройкой и удалением тестового модуля и тестовых случаев. Теперь по умолчанию один рабочий процесс запускает весь тестовый модуль (который соответствует всем тестам в одном файле Python), что означает, что все накладные расходы оплачиваются рабочими процессами только один раз. .
  2. По умолчанию — до сих пор режим по умолчанию для зеленого заключался в последовательном запуске всех тестов в основном процессе, как и в других скучных и медленных средствах запуска тестов. Причина этого заключалась в том, что мы хотели, чтобы тесты просто работали из коробки, когда вы переключаетесь на Зеленый с того, с чего начали. Поскольку, по-видимому, 99% ошибок параллелизма происходят внутри тестового модуля, и теперь мы запускаем целые модули в одном и том же рабочем процессе, мы обошли проблему. Ура! Конечно, если вы поместили все свои тесты в один модуль, вы захотите разделить их на несколько разумных модулей, чтобы испытать ускорение.

Нажмите здесь, чтобы просмотреть полный список изменений.

Надеюсь, вы попробуете Зеленый в своем наборе модульных тестов. Если у вас нет модульных тестов для вашего кода Python, сейчас самое время начать!