v6からv7へ
このチュートリアルは、WebdriverIOのv6
を使用していて、v7
に移行したい人向けです。リリースブログ記事で述べたように、変更点はほとんどが内部的なもので、アップグレードは比較的簡単なプロセスです。
WebdriverIO v5
以前を使用している場合は、まずv6
にアップグレードしてください。v6移行ガイドをご確認ください。
完全に自動化されたプロセスがあればいいのですが、現実は異なります。皆さんそれぞれ異なるセットアップを持っています。各ステップは段階的な指示というよりも、ガイダンスとして見るべきです。移行に問題がある場合は、遠慮なくお問い合わせください。
セットアップ
他の移行と同様に、WebdriverIOのcodemodを使用できます。このチュートリアルでは、コミュニティメンバーから提供されたボイラープレートプロジェクトを使用して、v6
からv7
に完全に移行します。
codemodをインストールするには、次のコマンドを実行します:
npm install jscodeshift @wdio/codemod
コミット:
- codemod依存関係のインストール [6ec9e52]
WebdriverIO依存関係のアップグレード
すべてのWebdriverIOバージョンは互いに密接に関連しているため、常に特定のタグ(例:latest
)にアップグレードすることをお勧めします。そのためには、package.json
からWebdriverIO関連の依存関係をすべてコピーして、以下のように再インストールします:
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
通常、WebdriverIO依存関係は開発依存関係の一部ですが、プロジェクトによって異なる場合があります。これにより、package.json
とpackage-lock.json
が更新されるはずです。注意: これらはサンプルプロジェクトで使用されている依存関係であり、あなたのプロジェクトでは異なる場合があります。
コミット:
- 依存関係の更新 [7097ab6]
設定ファイルの変換
最初のステップとして、設定ファイルから始めるのが良いでしょう。WebdriverIO v7
では、コンパイラを手動で登録する必要がなくなりました。実際、それらを削除する必要があります。これはcodemodを使用して完全に自動化できます:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
codemodはまだTypeScriptプロジェクトをサポートしていません。@webdriverio/codemod#10
を参照してください。私たちはすぐにサポートを実装するために取り組んでいます。TypeScriptを使用している場合は、ぜひご協力ください!
コミット:
- 設定ファイルの変換 [6015534]
ステップ定義の更新
JasmineまたはMochaを使用している場合は、これで完了です。最後のステップは、Cucumber.jsのインポートをcucumber
から@cucumber/cucumber
に更新することです。これもcodemodを使って自動的に行えます:
npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*
これで完了です!他に変更は必要ありません 🎉
コミット:
- ステップ定義の変換 [8c97b90]
結論
このチュートリアルがWebdriverIO v7
への移行プロセスの参考になれ ば幸いです。コミュニティは様々なチームや組織でテストしながら、codemodの改善を続けています。フィードバックがある場合は問題を報告したり、移行プロセスで困ったことがあればディスカッションを開始したりすることをためらわないでください。