Von v6 bis v7
Dieses Tutorial richtet sich an Personen, die noch v6
von WebdriverIO verwenden und auf v7
migrieren möchten. Wie in unserem Release-Blogbeitrag erwähnt, befinden sich die Änderungen größtenteils unter der Haube, und das Upgrade sollte ein unkomplizierter Prozess sein.
Wenn Sie WebdriverIO v5
oder niedriger verwenden, aktualisieren Sie bitte zuerst auf v6
. Bitte sehen Sie sich unseren v6-Migrationsleitfaden an.
Während wir dafür gerne einen vollautomatisierten Prozess hätten, sieht die Realität anders aus. Jeder nutzt WebdriverIO auf eine andere Art und Weise. Dieses Dokument gilt als eine Hilfestellung und weniger als Schritt-für-Schritt-Anleitung. Wenn Sie Probleme mit der Migration haben, zögern Sie nicht, uns zu kontaktieren.
Setup
Ähnlich wie bei anderen Migrationen können wir den WebdriverIO Codemodverwenden. Für dieses Tutorial verwenden wir ein Boilerplate-Projekt, das von einem Community-Mitglied eingereicht wurde, und migrieren es vollständig von v6
auf v7
.
Um den Codemod zu installieren, führen Sie Folgendes aus:
npm install jscodeshift @wdio/codemod
Commits:
- install codemod deps [6ec9e52]
Aktualisieren Sie WebdriverIO-Abhängigkeiten
Da alle WebdriverIO-Versionen eng beieinander liegen, ist es am besten, immer auf ein bestimmtes Tag zu aktualisieren, z. B. latest
. Dazu kopieren wir alle WebdriverIO-bezogenen Abhängigkeiten aus unserer package.json
und installieren sie neu über:
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
Normalerweise sind WebdriverIO-Abhängigkeiten Teil der Dev-Dependencies, je nach Projekt kann dies jedoch variieren. Danach sollte Ihre package.json
und package-lock.json
aktualisiert werden. Hinweis: Dies sind die vom Beispielprojekt verwendeten Abhängigkeiten, Ihre können abweichen.
Commits:
- updated dependencies [7097ab6]
Konfigurationsdatei Transformieren
Ein guter erster Schritt ist, mit der Konfigurationsdatei zu beginnen. In WebdriverIO v7
müssen wir keinen der Compiler mehr manuell registrieren. Diese Einstellungen müssen sogar entfernt werden. Dies kann mit dem Codemod vollautomatisch erfolgen:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
Der Codemod unterstützt noch keine TypeScript-Projekte. Siehe @webdriverio/codemod#10
. Wir arbeiten daran, die Unterstützung dafür bald zu implementieren. Wenn Sie TypeScript verwenden, ist jede Hilfe gern gesehen!
Commits:
- transpile config file [6015534]
Schrittdefinitionen Aktualisieren
Wenn Sie Jasmin oder Mocha verwenden, sind Sie hier fertig. Der letzte Schritt besteht darin, die Cucumber.js-Importe von cucumber
auf @cucumber/cucumber
zu aktualisieren. Dies kann mit dem Codemod vollautomatisch erfolgen:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
Das war's! Keine weiteren Änderungen mehr notwendig 🎉
Commits:
- transpile step definitions [8c97b90]
Zusammenfassung
Wir hoffen, dass dieses Tutorial Ihnen ein wenig durch den Migrationsprozess zu WebdriverIO v7
geholfen hat. Die Community verbessert den Codemod weiter und testet ihn mit verschiedenen Teams in verschiedenen Organisationen. Zögern Sie nicht, ein Problem zu melden, wenn Sie Feedback haben, oder eine Diskussion zu beginnen wenn Sie während des Migrationsprozesses auf Schwierigkeiten stoßen.