С v6 на v7
Этот учебник предназначен для тех, кто все еще использует v6
WebdriverIO и хочет перейти на v7
. Как упоминалось в нашей статье о выпуске, изменения в основном находятся под капотом, и обновление должно быть простым процессом.
Если вы используете WebdriverIO v5
или ниже, сначала обновитесь до v6
. Пожалуйста, ознакомьтесь с нашим руководством по миграции на v6.
Хотя мы хотели бы иметь полностью автоматизированный процесс, реальность выглядит иначе. У каждого своя настройка. Каждый шаг следует рассматривать как руководство, а не как пошаговую инструкцию. Если у вас возникли проблемы с миграцией, не стесняйтесь связаться с нами.
Настройка
Подобно другим миграциям, мы можем использовать codemod от WebdriverIO. Для этого учебника мы используем базовый проект, предоставленный членом сообщества, и полностью переносим его с v6
на v7
.
Для установки codemod выполните:
npm install jscodeshift @wdio/codemod
Коммиты:
- install codemod deps [6ec9e52]
Обновление зависимостей WebdriverIO
Учитывая, что все версии WebdriverIO связаны друг с другом, лучше всего обновляться до определенного тега, например latest
. Для этого копируем все зависимости, связанные с WebdriverIO, из нашего package.json
и переустанавливаем их:
npm i --save-dev @wdio/allure-reporter@7 @wdio/cli@7 @wdio/cucumber-framework@7 @wdio/local-runner@7 @wdio/spec-reporter@7 @wdio/sync@7 wdio-chromedriver-service@7 wdio-timeline-reporter@7 webdriverio@7
Обычно зависимости WebdriverIO являются частью dev-зависимостей, хотя в зависимости от вашего проекта это может отличаться. После этого ваши package.json
и package-lock.json
должны быть обновлены. Примечание: это зависимости, используемые в проекте-примере, ваши могут отличаться.
Коммиты:
- updated dependencies [7097ab6]
Преобразование файла конфигурации
Хороший первый шаг — начать с файла конфигурации. В WebdriverIO v7
больше не требуется вручную регистрировать компиляторы. Фактически, их нужно удалить. Это можно сделать автоматически с помощью codemod:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
Codemod еще не поддерживает проекты на TypeScript. См. @webdriverio/codemod#10
. Мы работаем над реализацией поддержки. Если вы используете TypeScript, пожалуйста, участвуйте!
Коммиты:
- transpile config file [6015534]
Обновление определений шагов
Если вы используете Jasmine или Mocha, на этом все. Последний шаг — обновить импорты Cucumber.js с cucumber
на @cucumber/cucumber
. Это также можно сделать автоматически с помощью codemod:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
Вот и все! Больше никаких изменений не требуется 🎉
Коммиты:
- transpile step definitions [8c97b90]
Заключение
Мы надеемся, что этот учебник поможет вам в процессе миграции на WebdriverIO v7
. Сообщество продолжает улучшать codemod, тестируя его с различными командами в различных организациях. Не стесняйтесь создать issue, если у вас есть отзывы, или начать обсуждение, если у вас возникли трудности в процессе миграции.