Как обновить hermione до версии 5.x
Если в вашем проекте hermione младше 4-й версии, то прочтите «Как обновить hermione до версии 4.x», прежде чем обновлять hermione до 5-й версии.
Мы рекомендуем вам обновлять hermione поэтапно, убеждаясь на каждом этапе, что все тесты проекта корректно выполняются.
Что изменилось?
Новые дефолты в конфиге
Первое, на что стоит обратить внимание при переезде, — это изменение дефолтных значений некоторых опций в конфиге. Все изменения направлены на то, чтобы при базовой настройке hermione тесты проходили быстрее, а после прогона оставалось больше информации о тестах.
Параметр | Было | Стало | Описание |
antialiasingTolerance | 0 | 4 | Задает чувствительность определения антиалиасинга, который будет игнорироваться при сравнении скриншотов. |
compositeImage | false | true | Позволяет тестировать элементы, не влезающие во вьюпорт по высоте. |
saveHistory | false | true | Сохранять историю всех выполненных команд. |
false | true | Определяет снимать ли скриншот страницы браузера (Page Screenshot) при падении теста, а также при падении команды assertView. | |
takeScreenshotOnFailsMode | "viewport" | "fullpage" | Режим снятия скриншота при падении теста. Доступные значения: viewport и fullpage. |
takeScreenshotOnFailsTimeout | 90000 | 5000 | Таймаут для снятия скриншота страницы браузера (Page Screenshot) при падении теста, в мс. |
httpTimeout | 90000 | 30000 | Таймаут для любых запросов к Selenium-серверу, в мс. |
pageLoadTimeout | 300000 | 20000 | Таймаут для полной загрузки страницы, в мс. |
sessionQuitTimeout | 90000 | 5000 | Таймаут для завершения сессии, в мс. |
Кроме этого, удалены опции 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 — и мы обязательно вам поможем!