コンテンツにスキップ

拡張機能のPRのローカル検証

リモートドライバやプラグインのPRが特定のローカル環境で動作するかどうかを、マージまたは公開する前に検証する必要がある場合があります。このチュートリアルでは、それを実現する方法について説明します。

要件

  • NodeJSの最近のLTSバージョン。ダウンロードリンクについては、Node.jsメインページを確認してください。
  • Appiumサーバーの最近のバージョン。次のコマンドを使用して、最新バージョンがインストールされていることを確認してください:npm uninstall appiumnpm install -g appium
  • Gitがローカルで利用可能である必要があります。

インストール

  • ローカルでPRをチェックアウトします。また、(後でこのPRへの変更を簡単にフェッチできなくなるため、柔軟性は劣りますが)ソースをローカルにダウンロードして解凍するというオプションもあります。後者のオプションを選択した場合、gitツールは必要ありません。
  • ローカルのドライバまたはプラグインフォルダに移動し、そのフォルダからnpm iを実行します。
  • 指定されたドライバまたはプラグインが既にインストールされていないことを確認してください。appium driver uninstall <driver_name>またはappium plugin uninstall <plugin_name> CLIを使用して、残りのものを削除します。<driver_name>/<plugin_name>の値は、PRが準備されている実際のドライバまたはプラグイン名によって異なります。どの名前を使用する必要があるかわからない場合は、フェッチされたソースのルートフォルダの下に常に配置されているpackage.jsonマニフェストの内容を確認してください。そこにある"appium" -> "driverName"エントリの値を探す必要があります。
  • 現在のフォルダを、ドライバ/プラグインフォルダのルートまたはそのサブフォルダではないものに変更します。また、現在の作業フォルダに余分なpackage.jsonファイルが含まれていないことを確認してください。含まれている場合は、含まれていない別のフォルダに移動してください。
  • 次のコマンドを実行して、ドライバ/プラグインソースをAppiumサーバーにリンクします:appium driver install --source=local <full_path_to_driver_folder_with_fetched_sources>またはappium plugin install --source=local <full_path_to_plugin_folder_with_fetched_sources>
  • Appiumサーバーが実行中の場合は停止し、再度起動します(appium server --use-drivers=<driver_name>)。これにより、ロードされたドライバのリストを確認します。リンクが成功した場合、サーバーログにドライバ名とその親フォルダへのパスが表示されるはずです。プラグインの場合は、サーバーの起動時にこのプラグインを明示的にロードするように要求する必要があります:appium server --use-plugins=<plugin_name>

更新

PRをテストした後、問題がある場合は、Gitからの最近の変更でローカルブランチを更新する必要がある場合があります。そのための次の手順に従ってください。

  • ローカルドライバ/プラグインの親フォルダに移動し、git pullを実行します。
  • Appiumサーバーが実行中の場合は停止します。
  • ローカルドライバ/プラグインの親フォルダでnpm iを実行して、再構築し、必要に応じて依存関係を更新します。
  • 上記インストールステップで行ったのと同様に、再度Appiumサーバーを起動します。

安定版への切り替え

PRがマージされた後、ローカルプラグイン/ドライバのデプロイを使用する必要がなくなり、NPMで管理されているパッケージに戻すのが理にかなっています。そのための次の手順に従ってください。

  • appium driver uninstall <driver_name>またはappium plugin uninstall <driver_name>を実行して、インストールされているドライバ/プラグインをサーバーからリンク解除します。
  • ローカルソースフォルダを削除します(rm -rf <full_path_to_plugin_or_driver_folder_with_fetched_sources>)。
  • NPMからドライバまたはプラグインをインストールします。適切なコマンドを見つけるには、コンポーネントのREADMEを確認してください。