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

С v6 на v7

Этот учебник предназначен для тех, кто все еще использует v6 WebdriverIO и хочет перейти на v7. Как упоминалось в нашей статье о выпуске, изменения в основном находятся под капотом, и обновление должно быть простым процессом.

информация

Если вы используете WebdriverIO v5 или ниже, сначала обновитесь до v6. Пожалуйста, ознакомьтесь с нашим руководством по миграции на v6.

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

Настройка

Подобно другим миграциям, мы можем использовать codemod от WebdriverIO. Для этого учебника мы используем базовый проект, предоставленный членом сообщества, и полностью переносим его с v6 на v7.

Для установки codemod выполните:

npm install jscodeshift @wdio/codemod

Коммиты:

Обновление зависимостей 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 должны быть обновлены. Примечание: это зависимости, используемые в проекте-примере, ваши могут отличаться.

Коммиты:

Преобразование файла конфигурации

Хороший первый шаг — начать с файла конфигурации. В WebdriverIO v7 больше не требуется вручную регистрировать компиляторы. Фактически, их нужно удалить. Это можно сделать автоматически с помощью codemod:

npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
предостережение

Codemod еще не поддерживает проекты на TypeScript. См. @webdriverio/codemod#10. Мы работаем над реализацией поддержки. Если вы используете TypeScript, пожалуйста, участвуйте!

Коммиты:

Обновление определений шагов

Если вы используете Jasmine или Mocha, на этом все. Последний шаг — обновить импорты Cucumber.js с cucumber на @cucumber/cucumber. Это также можно сделать автоматически с помощью codemod:

npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*

Вот и все! Больше никаких изменений не требуется 🎉

Коммиты:

Заключение

Мы надеемся, что этот учебник поможет вам в процессе миграции на WebdriverIO v7. Сообщество продолжает улучшать codemod, тестируя его с различными командами в различных организациях. Не стесняйтесь создать issue, если у вас есть отзывы, или начать обсуждение, если у вас возникли трудности в процессе миграции.

Welcome! How can I help?

WebdriverIO AI Copilot