De v6 para v7
Este tutorial é para pessoas que ainda estão usando v6
do WebdriverIO e desejam migrar para v7
. Como mencionado em nosso post do blog de lançamento, as mudanças são principalmente internas e o processo de atualização deve ser direto.
Se você está usando WebdriverIO v5
ou inferior, por favor, atualize para v6
primeiro. Consulte nosso guia de migração v6.
Embora gostaríamos de ter um processo totalmente automatizado para isso, a realidade é diferente. Cada pessoa tem uma configuração diferente. Cada etapa deve ser vista como orientação e menos como uma instrução passo a passo. Se você tiver problemas com a migração, não hesite em entrar em contato conosco.
Configuração
Semelhante a outras migrações, podemos usar o codemod do WebdriverIO. Para este tutorial, usamos um projeto modelo enviado por um membro da comunidade e o migramos completamente de v6
para v7
.
Para instalar o codemod, execute:
npm install jscodeshift @wdio/codemod
Commits:
- install codemod deps [6ec9e52]
Atualizar Dependências do WebdriverIO
Dado que todas as versões do WebdriverIO estão vinculadas umas às outras, é melhor sempre atualizar para uma tag específica, por exemplo, latest
. Para fazer isso, copiamos todas as dependências relacionadas ao WebdriverIO do nosso package.json
e as reinstalamos 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
Normalmente, as dependências do WebdriverIO fazem parte das dependências de desenvolvimento, mas dependendo do seu projeto, isso pode variar. Depois disso, seu package.json
e package-lock.json
devem ser atualizados. Nota: estas são as dependências usadas pelo projeto de exemplo, as suas podem ser diferentes.
Commits:
- updated dependencies [7097ab6]
Transformar Arquivo de Configuração
Um bom primeiro passo é começar com o arquivo de configuração. No WebdriverIO v7
, não precisamos mais registrar manualmente nenhum dos compiladores. Na verdade, eles precisam ser removidos. Isso pode ser feito com o codemod de forma totalmente automática:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
O codemod ainda não suporta projetos TypeScript. Veja @webdriverio/codemod#10
. Estamos trabalhando para implementar o suporte em breve. Se você está usando TypeScript, por favor, envolva-se!
Commits:
- transpile config file [6015534]
Atualizar Definições de Etapas
Se você está usando Jasmine ou Mocha, você está pronto aqui. O último passo é atualizar os imports do Cucumber.js de cucumber
para @cucumber/cucumber
. Isso também pode ser feito via codemod automaticamente:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
É isso! Não são necessárias mais alterações 🎉
Commits:
- transpile step definitions [8c97b90]
Conclusão
Esperamos que este tutorial o guie um pouco pelo processo de migração para o WebdriverIO v7
. A comunidade continua a melhorar o codemod enquanto o testa com várias equipes em várias organizações. Não hesite em levantar um problema se você tiver feedback ou iniciar uma discussão se você tiver dificuldades durante o processo de migração.