Hoppa till huvudinnehåll

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.

info

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:

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:

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
varning

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:

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:

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.

Welcome! How can I help?

WebdriverIO AI Copilot