Från v6 till v7
Den här handledningen är för personer som fortfarande använder v6
av WebdriverIO och vill migrera till v7
. Som nämnts i vårt release-blogginlägg är förändringarna mestadels under huven och uppgraderingen bör vara en enkel process.
Om du använder WebdriverIO v5
eller äldre, vänligen uppgradera till v6
först. Kolla in vår v6 migrationsguide.
Även om vi skulle vilja ha en helt automatiserad process för detta ser verkligheten annorlunda ut. Alla har olika uppsättningar. Varje steg bör ses som vägledning och mindre som en steg-för-steg-instruktion. Om du har problem med migreringen, tveka inte att kontakta oss.
Inställningar
Liknande andra migreringar kan vi använda WebdriverIO codemod. För denna handledning använder vi ett boilerplate-projekt som lämnats av en användare och migrerar det fullt från v6
till v7
.
För att installera codemod, kör:
npm install jscodeshift @wdio/codemod
Commits:
- install codemod deps [6ec9e52]
Uppgradera WebdriverIO-beroenden
Eftersom alla WebdriverIO-versioner är knutna till varandra är det bäst att alltid uppgradera till en specifik tagg, t.ex. latest
. För att göra detta kopierar vi alla WebdriverIO-relaterade beroenden från vår package.json
och installerar om dem via:
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
Vanligtvis är WebdriverIO-beroenden en del av utvecklingsberoendet, men beroende på ditt projekt kan detta variera. Efter detta bör din package.json
och package-lock.json
vara uppdaterade. Obs: dessa är de beroenden som används av exempelprojektet, dina kan skilja sig åt.
Commits:
- updated dependencies [7097ab6]
Transformera konfigurationsfilen
Ett bra första steg är att börja med konfigurationsfilen. I WebdriverIO v7
behöver vi inte längre registrera kompilerare manuellt. De måste faktiskt tas bort. Detta kan göras helt automatiskt med codemod:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
Codemod stöder ännu inte TypeScript-projekt. Se @webdriverio/codemod#10
. Vi arbetar med att implementera stöd för det snart. Om du använder TypeScript, vänligen engagera dig!
Commits:
- transpile config file [6015534]
Uppdatera stepdefinitioner
Om du använder Jasmine eller Mocha är du klar här. Det sista steget är att uppdatera Cucumber.js-importen från cucumber
till @cucumber/cucumber
. Detta kan också göras automatiskt via codemod:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
Det är allt! Inga fler ändringar nödvändiga 🎉
Commits:
- transpile step definitions [8c97b90]
Slutsats
Vi hoppas att denna handledning guidar dig lite genom migreringsprocessen till WebdriverIO v7
. Gemenskapen fortsätter att förbättra codemod genom att testa den med olika team i olika organisationer. Tveka inte att skapa ett ärende om du har feedback eller starta en diskussion om du har problem under migreringsprocessen.