De v6 à v7
Ce tutoriel est destiné aux personnes qui utilisent encore v6
de WebdriverIO et souhaitent migrer vers v7
. Comme mentionné dans notre article de blog sur la version, les changements sont principalement sous le capot et la mise à niveau devrait être un processus simple.
Si vous utilisez WebdriverIO v5
ou une version antérieure, veuillez d'abord passer à v6
. Consultez notre guide de migration v6.
Bien que nous aimerions avoir un processus entièrement automatisé pour cela, la réalité est différente. Chacun a une configuration différente. Chaque étape doit être considérée comme un guide et moins comme une instruction étape par étape. Si vous rencontrez des problèmes avec la migration, n'hésitez pas à nous contacter.
Configuration
Comme pour d'autres migrations, nous pouvons utiliser le codemod de WebdriverIO. Pour ce tutoriel, nous utilisons un projet boilerplate soumis par un membre de la communauté et le migrons complètement de v6
à v7
.
Pour installer le codemod, exécutez :
npm install jscodeshift @wdio/codemod
Commits :
- install codemod deps [6ec9e52]
Mettre à niveau les dépendances WebdriverIO
Étant donné que toutes les versions de WebdriverIO sont liées les unes aux autres, il est préférable de toujours passer à une balise spécifique, par exemple latest
. Pour ce faire, nous copions toutes les dépendances liées à WebdriverIO de notre package.json
et les réinstallons 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
Habituellement, les dépendances WebdriverIO font partie des dépendances de développement, mais cela peut varier selon votre projet. Après cela, vos fichiers package.json
et package-lock.json
devraient être mis à jour. Remarque : ce sont les dépendances utilisées par le projet d'exemple, les vôtres peuvent différer.
Commits :
- updated dependencies [7097ab6]
Transformer le fichier de configuration
Une bonne première étape consiste à commencer par le fichier de configuration. Dans WebdriverIO v7
, nous n'avons plus besoin d'enregistrer manuellement les compilateurs. En fait, ils doivent être supprimés. Cela peut être fait automatiquement avec le codemod :
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
Le codemod ne prend pas encore en charge les projets TypeScript. Voir @webdriverio/codemod#10
. Nous travaillons à l'implémentation de cette prise en charge prochainement. Si vous utilisez TypeScript, n'hésitez pas à vous impliquer !
Commits :
- transpile config file [6015534]
Mettre à jour les définitions d'étapes
Si vous utilisez Jasmine ou Mocha, vous avez terminé ici. La dernière étape consiste à mettre à jour les importations Cucumber.js de cucumber
à @cucumber/cucumber
. Cela peut également être fait automatiquement via le codemod :
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
C'est tout ! Pas d'autres changements nécessaires 🎉
Commits :
- transpile step definitions [8c97b90]
Conclusion
Nous espérons que ce tutoriel vous guide un peu dans le processus de migration vers WebdriverIO v7
. La communauté continue d'améliorer le codemod en le testant avec diverses équipes dans diverses organisations. N'hésitez pas à signaler un problème si vous avez des commentaires ou à démarrer une discussion si vous rencontrez des difficultés pendant le processus de migration.