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