Перейти к основному содержимому

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...
};

Расшифровка параметров конфигурации

ПараметрТипПо умолчаниюОписание
enabledBooleantrueВключить / отключить плагин.
compressionLevelNumber2Степень сжатия изображения: от 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

Изображения на файловой системе будут обновлены.