Автоматические тесты для Адоба
Давно была идея сделать тестирование скриптов для Индизайна и Иллюстратора. Пользуясь тестами на бэкенде и фронтенде, хочется тоже нажать волшебную кнопочку и наблюдать за прогресс-баром, успехами и падениями тестов. Мечта!
Но в Иллюстраторе и Индизайне у тебя на выходе файл, в котором «что-то произошло». Если пытаться после запуска скрипта писать ещё один скрипт, который будет открывать файл и проверять, сколько там у тебя создалось этих кружочков, то это с ума можно сойти!
Да, ты можешь проверить создание файлов, которые должен экспортировать твой скрипт. Ты можешь получить в результате скрипта успех/не успех. Но как быть с параметрами запуска скрипта, особенно когда у тебя большой список этих параметров да ещё и в какой-нибудь джейсон-структуре?
Ответ оказался достаточно прост, хотя пришлось повозиться с первой версией этого добра.
Когда программируешь под Адоб, всегда пишешь лог-файлы, потому что нет у Адоба консоли, где видны значения переменных и объектов. И вот ты на рабочем столе, например, делаешь лог-файл, куда пишешь всё, что хочешь.
Так вот у нас и готова база для тестирования! Просто надо логи писать рядом Адоб-файлом. И состоит система из:
1. файл, в котором запускается скрипт,
2. файлы, которые получились,
3. лог-файл.
Магическая папочка tests содержит:
1. конфиг-файл, где прописывается путь до запускаемого скрипта,
2. если надо, то файл входящих переменных, которые скрипт создаст перед каждой попыткой,
3. адрес папки, где лежит файл клиента,
4. список проверок, то есть тех самых тестов.
На текущий момент у меня уже проверки:
— есть ошибка или нет, точный текст ошибки, текст ошибки может содержать текст,
— сколько и каких файлов создалось и в каких папках,
— какие объекты были созданы и на каких позициях.
И этого уже вполне достаточно, чтобы быть спокойным за внесение изменений в скрипт.
То есть скрипт-тестировщик должен просто:
1. зайти в папку с очередным исходных файлом, загрузить переменные при необходимости,
2. открыть файл и выполнить скрипт, закрыть файл,
3. пройтись по лог-файлу и найти там все нужные статусы, значения, тексты ошибок, уведомления успехов,
4. пройтись по файлам, если они создавались скриптом (предварительно очистив эту папку в начале запуска теста), и убедиться, что всё создано, как надо.
Тут, конечно, надо точно соблюдать одинаковые способы написание логов, чтобы эта система работала на разных скриптах. Но без аккуратности, по-моему, вообще не возможен программист для скриптов под Адоб. Там выживают самые аккуратные и внимательные. 😍
Ну волшебство же! Запустить тесты на 5 файлах клиента за последние полгода и получить в результате:
Tests status = OK
tests: 5, asserts: 23