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

Как обновить hermione до версии 5.x

warning

Если в вашем проекте hermione младше 4-й версии, то прочтите «Как обновить hermione до версии 4.x», прежде чем обновлять hermione до 5-й версии.

Мы рекомендуем вам обновлять hermione поэтапно, убеждаясь на каждом этапе, что все тесты проекта корректно выполняются.

Что изменилось?

Новые дефолты в конфиге

Первое, на что стоит обратить внимание при переезде, — это изменение дефолтных значений некоторых опций в конфиге. Все изменения направлены на то, чтобы при базовой настройке hermione тесты проходили быстрее, а после прогона оставалось больше информации о тестах.

ПараметрБылоСталоОписание
antialiasingTolerance04

Задает чувствительность определения антиалиасинга, который будет игнорироваться при сравнении скриншотов.

compositeImagefalsetrueПозволяет тестировать элементы, не влезающие во вьюпорт по высоте.
saveHistoryfalsetrueСохранять историю всех выполненных команд.

takeScreenshotOnFails.assertViewFail

falsetrue

Определяет снимать ли скриншот страницы браузера (Page Screenshot) при падении теста, а также при падении команды assertView.

takeScreenshotOnFailsMode"viewport""fullpage"

Режим снятия скриншота при падении теста. Доступные значения: viewport и fullpage.

takeScreenshotOnFailsTimeout900005000

Таймаут для снятия скриншота страницы браузера (Page Screenshot) при падении теста, в мс.

httpTimeout9000030000Таймаут для любых запросов к Selenium-серверу, в мс.
pageLoadTimeout30000020000Таймаут для полной загрузки страницы, в мс.
sessionQuitTimeout900005000Таймаут для завершения сессии, в мс.

Кроме этого, удалены опции screenshotOnReject и screenshotOnRejectTimeout, которые ранее были объявлены как устаревшие (deprecated).

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

Отчеты в CLI

В данном разделе речь идет не про html-отчет, а про CLI-репортеры, которые поставляются из коробки.

  • Удален teamcity-репортер, т. к. в самой hermione он смотрелся чужеродно. Если вы всё же используете такой отчет, то можно использовать плагин hermione-teamcity-reporter.
  • Опция -r, с помощью которой раньше можно было указать тип репортера, теперь этим не занимается. Чаще всего такое сокращение имени используется для опции --require. Многие путались в этом месте и мы решили это поправить. Сам репортер вы всё еще можете указать при помощи опции --reporter.
  • Если вы захотите добавить свой репортер, то в его реализации обязательно должен быть метод create для инициализации.

Итого, если вы не использовали teamcity-репортер или не писали свои новые, то этот пункт при миграции можно пропустить.

testParserAPI

Теперь объект testParser, который можно было получить, подписавшись на событие BEFORE_FILE_READ, не является инстансом EventEmitter. Это значит, что теперь нельзя с помощью него подписаться на события SUITE_BEGIN и TEST_BEGIN.

Справедливости ради, оно изначально работало неправильно и никто это не использовал. Поэтому, эта возможность была удалена. Про все доступные события можно почитать здесь.

Поддержка

Если при переезде на новую версию вы столкнетесь с проблемами, или у вас возникнут какие-либо вопросы, то приходите в github issues — и мы обязательно вам поможем!