メインコンテンツにスキップ

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.jsonpackage-lock.jsonが更新されるはずです。注意: これらはサンプルプロジェクトで使用されている依存関係であり、あなたのプロジェクトでは異なる場合があります。

コミット:

設定ファイルの変換

最初のステップとして、設定ファイルから始めるのが良いでしょう。WebdriverIO v7では、コンパイラを手動で登録する必要がなくなりました。実際、それらを削除する必要があります。これはcodemodを使用して完全に自動化できます:

npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
注意

codemodはまだTypeScriptプロジェクトをサポートしていません。@webdriverio/codemod#10を参照してください。私たちはすぐにサポートを実装するために取り組んでいます。TypeScriptを使用している場合は、ぜひご協力ください!

コミット:

ステップ定義の更新

JasmineまたはMochaを使用している場合は、これで完了です。最後のステップは、Cucumber.jsのインポートをcucumberから@cucumber/cucumberに更新することです。これもcodemodを使って自動的に行えます:

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

これで完了です!他に変更は必要ありません 🎉

コミット:

結論

このチュートリアルがWebdriverIO v7への移行プロセスの参考になれば幸いです。コミュニティは様々なチームや組織でテストしながら、codemodの改善を続けています。フィードバックがある場合は問題を報告したり、移行プロセスで困ったことがあればディスカッションを開始したりすることをためらわないでください。

Welcome! How can I help?

WebdriverIO AI Copilot