Vai al contenuto principale

Da v5 a v6

Questo tutorial è per le persone che stanno ancora utilizzando la v5 di WebdriverIO e desiderano migrare alla v6 o all'ultima versione di WebdriverIO. Come menzionato nel nostro post sul blog di rilascio i cambiamenti per questo aggiornamento di versione possono essere riassunti come segue:

  • abbiamo consolidato i parametri per alcuni comandi (es. newWindow, react$, react$$, waitUntil, dragAndDrop, moveTo, waitForDisplayed, waitForEnabled, waitForExist) e spostato tutti i parametri opzionali in un unico oggetto, es.

    // v5
    browser.newWindow(
    'https://webdriver.io',
    'WebdriverIO window',
    'width=420,height=230,resizable,scrollbars=yes,status=1'
    )
    // v6
    browser.newWindow('https://webdriver.io', {
    windowName: 'WebdriverIO window',
    windowFeature: 'width=420,height=230,resizable,scrollbars=yes,status=1'
    })
  • le configurazioni per i servizi sono state spostate nella lista dei servizi, es.

    // v5
    exports.config = {
    services: ['sauce'],
    sauceConnect: true,
    sauceConnectOpts: { foo: 'bar' },
    }
    // v6
    exports.config = {
    services: [['sauce', {
    sauceConnect: true,
    sauceConnectOpts: { foo: 'bar' }
    }]],
    }
  • alcune opzioni di servizio sono state rinominate per motivi di semplificazione

  • abbiamo rinominato il comando launchApp in launchChromeApp per le sessioni Chrome WebDriver

informazione

Se stai utilizzando WebdriverIO v4 o versioni precedenti, per favore aggiorna prima alla v5.

Mentre ci piacerebbe avere un processo completamente automatizzato per questo, la realtà è diversa. Ognuno ha una configurazione differente. Ogni passo dovrebbe essere visto come una guida e meno come un'istruzione passo passo. Se hai problemi con la migrazione, non esitare a contattarci.

Setup

Similmente ad altre migrazioni possiamo usare il codemod di WebdriverIO. Per installare il codemod, esegui:

npm install jscodeshift @wdio/codemod

Aggiorna le Dipendenze di WebdriverIO

Dato che tutte le versioni di WebdriverIO sono legate tra loro, è meglio aggiornare sempre a un tag specifico, ad esempio 6.12.0. Se decidi di aggiornare direttamente dalla v5 alla v7, puoi omettere il tag e installare le versioni più recenti di tutti i pacchetti. Per fare ciò, copiamo tutte le dipendenze relative a WebdriverIO dal nostro package.json e le reinstalliamo tramite:

npm i --save-dev @wdio/allure-reporter@6 @wdio/cli@6 @wdio/cucumber-framework@6 @wdio/local-runner@6 @wdio/spec-reporter@6 @wdio/sync@6 wdio-chromedriver-service@6 webdriverio@6

Di solito le dipendenze di WebdriverIO fanno parte delle dipendenze di sviluppo, ma a seconda del tuo progetto questo può variare. Dopo questo, il tuo package.json e package-lock.json dovrebbero essere aggiornati. Nota: queste sono dipendenze di esempio, le tue potrebbero essere diverse. Assicurati di trovare l'ultima versione v6 chiamando, ad esempio:

npm show webdriverio versions

Cerca di installare l'ultima versione 6 disponibile per tutti i pacchetti principali di WebdriverIO. Per i pacchetti della community questo può variare da pacchetto a pacchetto. Qui ti consigliamo di controllare il changelog per informazioni su quale versione è ancora compatibile con v6.

Trasforma il File di Configurazione

Un buon primo passo è iniziare con il file di configurazione. Tutte le modifiche non retrocompatibili possono essere risolte automaticamente usando il codemod:

npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./wdio.conf.js
attenzione

Il codemod non supporta ancora progetti TypeScript. Vedi @webdriverio/codemod#10. Stiamo lavorando per implementare il supporto a breve. Se stai utilizzando TypeScript, per favore partecipa!

Aggiorna i File di Spec e i Page Object

Per aggiornare tutte le modifiche ai comandi, esegui il codemod su tutti i tuoi file e2e che contengono comandi WebdriverIO, ad esempio:

npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./e2e/*

È tutto! Non sono necessarie altre modifiche 🎉

Conclusione

Speriamo che questo tutorial ti guidi un po' attraverso il processo di migrazione a WebdriverIO v6. Ti consigliamo vivamente di continuare ad aggiornare all'ultima versione dato che l'aggiornamento alla v7 è banale grazie a quasi nessuna modifica non retrocompatibile. Consulta la guida di migrazione per aggiornare a 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 hai difficoltà durante il processo di migrazione.

Welcome! How can I help?

WebdriverIO AI Copilot