Da v6 a v7
Questo tutorial è per le persone che stanno ancora utilizzando v6
di WebdriverIO e vogliono migrare alla v7
. Come menzionato nel nostro post sul blog di rilascio, i cambiamenti sono principalmente sotto il cofano e l'aggiornamento dovrebbe essere un processo semplice.
Se stai utilizzando WebdriverIO v5
o versioni precedenti, prima aggiorna alla v6
. Consulta la nostra guida alla migrazione v6.
Anche se vorremmo avere un processo completamente automatizzato per questo, la realtà è diversa. Ognuno ha una configurazione differente. Ogni passaggio dovrebbe essere visto come una guida e meno come un'istruzione passo dopo passo. Se hai problemi con la migrazione, non esitare a contattarci.
Setup
Simile ad altre migrazioni, possiamo usare il codemod di WebdriverIO. Per questo tutorial utilizziamo un progetto boilerplate fornito da un membro della community e lo migriamo completamente da v6
a v7
.
Per installare il codemod, esegui:
npm install jscodeshift @wdio/codemod
Commit:
- install codemod deps [6ec9e52]
Aggiornare le Dipendenze di WebdriverIO
Dato che tutte le versioni di WebdriverIO sono legate tra loro, è meglio aggiornare sempre a un tag specifico, ad esempio latest
. Per farlo, copiamo tutte le dipendenze relative a WebdriverIO dal nostro package.json
e le reinstalliamo tramite:
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
Solitamente le dipendenze di WebdriverIO fanno parte delle dipendenze di sviluppo, ma questo può variare a seconda del tuo progetto. Dopo questo passaggio, i tuoi file package.json
e package-lock.json
dovrebbero essere aggiornati. Nota: queste sono le dipendenze utilizzate dal progetto di esempio, le tue potrebbero essere diverse.
Commit:
- updated dependencies [7097ab6]
Trasformare il File di Configurazione
Un buon primo passo è iniziare con il file di configurazione. In WebdriverIO v7
non è più necessario registrare manualmente nessuno dei compilatori. In effetti, devono essere rimossi. Questo può essere fatto con il codemod in modo completamente automatico:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
Il codemod non supporta ancora progetti TypeScript. Vedi @webdriverio/codemod#10
. Stiamo lavorando per implementare il supporto al più presto. Se stai utilizzando TypeScript, coinvolgiti!
Commit:
- transpile config file [6015534]
Aggiornare le Definizioni dei Passi
Se stai utilizzando Jasmine o Mocha, hai finito qui. L'ultimo passaggio è aggiornare gli import di Cucumber.js da cucumber
a @cucumber/cucumber
. Anche questo può essere fatto automaticamente tramite il codemod:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
È tutto! Non sono necessarie altre modifiche 🎉
Commit:
- transpile step definitions [8c97b90]
Conclusione
Speriamo che questo tutorial ti guidi un po' attraverso il processo di migrazione a WebdriverIO v7
. La community continua a migliorare il codemod testandolo con vari team in diverse organizzazioni. Non esitare a segnalare un problema se hai feedback o avviare una discussione se incontri difficoltà durante il processo di migrazione.