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 の改善を続けています。フィードバックがある場合は issue を提起 し、移行プロセス中に問題が発生した場合は ディスカッションを開始 してください。