Von v6 zu v7
Dieses Tutorial richtet sich an Personen, die noch v6
von WebdriverIO verwenden und zu v7
migrieren möchten. Wie in unserem Release-Blogbeitrag erwähnt, sind 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
. Schauen Sie sich unseren v6-Migrationsguide an.
Obwohl wir gerne einen vollautomatischen Prozess dafür hätten, sieht die Realität anders aus. Jeder hat ein anderes Setup. Jeder Schritt sollte als Orientierungshilfe und weniger als Schritt-für-Schritt-Anleitung betrachtet werden. Wenn Sie Probleme bei der Migration haben, zögern Sie nicht, uns zu kontaktieren.
Setup
Ähnlich wie bei anderen Migrationen können wir das WebdriverIO codemod verwenden. 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 das Codemod zu installieren, führen Sie aus:
npm install jscodeshift @wdio/codemod
Commits:
- install codemod deps [6ec9e52]
WebdriverIO-Abhängigkeiten aktualisieren
Da alle WebdriverIO-Versionen miteinander verbunden sind, 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 sollten Ihre package.json
und package-lock.json
aktualisiert sein. Hinweis: Dies sind die Abhängigkeiten, die vom Beispielprojekt verwendet werden, 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 keine Compiler mehr manuell registrieren. Tatsächlich müssen sie entfernt werden. Dies kann mit dem Codemod vollautomatisch erfolgen:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
Das 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, beteiligen Sie sich bitte!
Commits:
- transpile config file [6015534]
Step Definitions aktualisieren
Wenn Sie Jasmine 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 auch über das Codemod automatisch erfolgen:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
Das war's! Keine weiteren Änderungen erforderlich 🎉
Commits:
- transpile step definitions [8c97b90]
Fazit
Wir hoffen, dass dieses Tutorial Sie ein wenig durch den Migrationsprozess zu WebdriverIO v7
führt. Die Community arbeitet weiterhin an der Verbesserung des Codemods, während es mit verschiedenen Teams in verschiedenen Organisationen getestet wird. Zögern Sie nicht, ein Issue zu erstellen, wenn Sie Feedback haben oder eine Diskussion zu starten, wenn Sie während des Migrationsprozesses Schwierigkeiten haben.