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

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

warning

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

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

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

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

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

ПараметрБылоСталоОписание
antialiasingTolerance04Задает чувствительность определения антиалиасинга, который будет игнорироваться при сравнении скриншотов.
compositeImagefalsetrueПозволяет тестировать элементы, не влезающие во вьюпорт по высоте.
saveHistoryfalsetrueСохранять историю всех выполненных команд.
takeScreenshotOnFails.assertViewFailfalsetrueОпределяет снимать ли скриншот страницы браузера (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 — и мы обязательно вам поможем!