De v6 a v7
Este tutorial es para personas que todavía están usando v6
de WebdriverIO y quieren migrar a v7
. Como se mencionó en nuestra publicación del blog de lanzamiento, los cambios son principalmente internos y la actualización debería ser un proceso sencillo.
Si estás usando WebdriverIO v5
o inferior, por favor actualiza primero a v6
. Consulta nuestra guía de migración a v6.
Aunque nos encantaría tener un proceso completamente automatizado para esto, la realidad es diferente. Cada uno tiene una configuración diferente. Cada paso debe verse como una guía y menos como una instrucción paso a paso. Si tienes problemas con la migración, no dudes en contactarnos.
Configuración
Similar a otras migraciones, podemos usar el codemod de WebdriverIO. Para este tutorial usamos un proyecto de plantilla enviado por un miembro de la comunidad y lo migramos completamente de v6
a v7
.
Para instalar el codemod, ejecuta:
npm install jscodeshift @wdio/codemod
Commits:
- install codemod deps [6ec9e52]
Actualizar Dependencias de WebdriverIO
Dado que todas las versiones de WebdriverIO están vinculadas entre sí, es mejor actualizar siempre a una etiqueta específica, por ejemplo, latest
. Para hacerlo, copiamos todas las dependencias relacionadas con WebdriverIO de nuestro package.json
y las reinstalamos mediante:
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
Normalmente, las dependencias de WebdriverIO son parte de las dependencias de desarrollo, aunque esto puede variar según tu proyecto. Después de esto, tu package.json
y package-lock.json
deberían estar actualizados. Nota: estas son las dependencias utilizadas por el proyecto de ejemplo, las tuyas pueden ser diferentes.
Commits:
- updated dependencies [7097ab6]
Transformar Archivo de Configuración
Un buen primer paso es comenzar con el archivo de configuración. En WebdriverIO v7
ya no necesitamos registrar manualmente ninguno de los compiladores. De hecho, deben eliminarse. Esto se puede hacer con el codemod de forma completamente automática:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
El codemod aún no admite proyectos TypeScript. Ver @webdriverio/codemod#10
. Estamos trabajando para implementar soporte pronto. Si estás usando TypeScript, ¡por favor involúcrate!
Commits:
- transpile config file [6015534]
Actualizar Definiciones de Pasos
Si estás usando Jasmine o Mocha, has terminado aquí. El último paso es actualizar las importaciones de Cucumber.js de cucumber
a @cucumber/cucumber
. Esto también se puede hacer a través del codemod automáticamente:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
¡Eso es todo! No se necesitan más cambios 🎉
Commits:
- transpile step definitions [8c97b90]
Conclusión
Esperamos que este tutorial te guíe un poco a través del proceso de migración a WebdriverIO v7
. La comunidad continúa mejorando el codemod mientras lo prueba con varios equipos en diversas organizaciones. No dudes en crear un issue si tienes comentarios o iniciar una discusión si tienes dificultades durante el proceso de migración.