testplane-image-minifier
Обзор
Используйте плагин testplane-image-minifier, чтобы сжимать изображения (скриншоты) в своих тестах.
Плагин поддерживает 8 степеней сжатия: от 0 (не применять сжатие) до 7 (максимальная степень сжатия).
Сжатие происходит без потерь.
Как это работает?
При запуске плагин подписывается на событие UPDATE_REFERENCE
, которое testplane посылает в случаях:
- если пользователь запустил testplane, передав ей опцию
--update-refs
; - если пользователь обновляет или сохраняет скриншоты с помощью плагина html-reporter.
Когда в плагин testplane-image-minifier
прилетает событие UPDATE_REFERENCE
, он получает вместе с событием ссылку на само изображение. Далее плагин применяет к полученному изображению алгоритм сжатия с указанной в конфиге степенью сжатия. И сохраняет новое изображение на файловую систему. После этого разработчик может влить обновленные файлы в главную ветку своего проекта.
Для сжатия изображений плагин testplane-image-minifier
использует пакет optipng-bin.
Выбирая степень сжатия для изображений в своем проекте, помните, что вы выбираете между скоростью и местом, которое будут занимать ваши изображения на диске. Чем выше степень сжатия, тем меньше места будут занимать ваши изображения на диске, но дольше будут выполняться сами тесты. Так как перед тем как сравнивать изображения в тестах система должна будет их распаковать. Поэтому, чтобы получить приемлемое время прогона тестов, соизмеряйте выбираемую степень сжатия с мощностью серверов, на которых эти тесты будут выполняться.
Установка
npm install -D testplane-image-minifier
Настройка
Необходимо подключить плагин в разделе plugins
конфига testplane
:
module.exports = {
plugins: {
"testplane-image-minifier": {
enabled: true, // Включить плагин.
compressionLevel: 7, // Максимальный уровень компрессии, сжатие займет какое-то время
},
// другие плагины testplane...
},
// другие настройки testplane...
};
Расшифровка параметров конфигурации
Параметр | Тип | По умолчанию | Описание |
enabled | Boolean | true | Включить / отключить плагин. |
compressionLevel | Number | 2 | Степень сжатия изображения: от 0 до 7 (максимальная степень сжатия). |
Передача параметров через CLI
Все параметры плагина, которые можно определить в конфиге, можно также передать в виде опций командной строки или через переменные окружения во время запуска testplane. Используйте префикс --image-minifier-
для опций командной строки и testplane_image_minifier_
— для переменных окружения. Например:
npx testplane --image-minifier-compression-level 5 ...
testplane_image_minifier_compression_level = 5 npx testplane ...
Отладка
Установите переменную окружения DEBUG=testplane:image-minifier
, чтобы видеть сообщения о применении алгоритма сжатия для изображений в тестах.
DEBUG=testplane:image-minifier npx testplane --update-refs
Пример, как это будет выглядеть в консоли:
/path/to/reference/image.png compressed by 30%
Использование
После добавления плагина в проект и настройки его параметров запустите testplane с опцией --update-refs
:
npx testplane --update-refs
Изображения на файловой системе будут обновлены.