События Testplane
Обзор
Как устроено описание событий
Ниже описаны все события testplane, на которые можно подписаться в своем плагине.
Описание каждого события начинается с тегов, которые представлены следующими вариантами:
- sync или async обозначают, соответственно, синхронный и асинхронный режимы вызова обработчика события;
- master обозначает, что данное событие доступно из мастер-процесса testplane;
- worker обозначает, что данное событие доступно из воркеров (подпроцессов) testplane;
- can be intercepted обозначает, что данное событие можно перехватить и соответственно, изменить.
Далее идут:
- описание обстоятельств, при которых триггерится событие;
- сниппет с кодом, показывающим как на него подписаться;
- параметры обработчика события;
- и опционально, примеры использования данного события в плагине или плагинах.
Схема генерации событий

Описание последовательности событий
Testplane можно запускать как через CLI (командную строку), так и через её API: из скрипта с помощью команды run.
После запуска testplane загружает все плагины и переходит к парсингу CLI, если она была запущена через CLI, или сразу к стадии инициализации, если её запустили через API.
Парсинг CLI
Если testplane была запущена через CLI, то она триггерит событие CLI. Любой плагин может подписаться на это событие, чтобы добавить свои опции и команды к testplane до того, как testplane распарсит CLI.
Если testplane была запущена с помощью API, то стадия парсинга CLI будет пропущена и сразу же начнется стадия инициализации.
Инициализация
Во время инициализации testplane триггерит событие INIT. Это событие срабатывает всего 1 раз за весь запуск testplane. Подписавшись на это событие, плагины могут выполнить всю необходимую им подготовительную работу: открыть и прочитать какие-то файлы, поднять dev-сервер, инициализировать структуры данных, и т. д. и т. п.
Затем testplane запускает подпроцессы (так называемые воркеры), в рамках которых будут выполняться все тесты. В мастер-процессе testplane тесты не выполняются, а только осуществляется общая оркестрация всего процесса запуска тестов, включая генерацию событий при завершении выполнения отдельных тестов.
Количество воркеров, которые запускает testplane, регулируется параметром workers в разделе system конфига testplane. При запуске очередного воркера testplane триггерит специальное событие NEW_WORKER_PROCESS.
Все тесты testplane запускает в воркерах, чтобы не столкнуться с ограничениями по памяти и CPU для мастер-процесса. Как только в воркере количество выполненных тестов достигнет значения testsPerWorker, воркер завершит свою работу, и будет запущен новый воркер. Соответственно, будет снова послано событие NEW_WORKER_PROCESS.