Перейти до основного вмісту

З 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 dependencies, хоча це може відрізнятися залежно від вашого проекту. Після цього ваші 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, тестуючи його з різними командами в різних організаціях. Не соромтеся створити проблему, якщо у вас є відгуки, або почати обговорення, якщо у вас виникають труднощі під час процесу міграції.

Welcome! How can I help?

WebdriverIO AI Copilot