Electron サービス
wdio-electron-service は第三者パッケージです。詳細については GitHub | npm をご覧ください。
Electron アプリケーションをテストするための WebdriverIO サービス
WebdriverIO のエコシステムを活用して、クロスプラットフォームでの Electron アプリの E2E テストを可能にします。
特徴
以下の機能により、Electron アプリケーションのテストがより簡単になります:
- 🚗 必要な Chromedriver の自動セットアップ(Electron v26 以上)
- 📦 Electron アプリケーションのパスの自動検出
- Electron Forge、Electron Builder および未パッケージ化されたアプリをサポート
- 🧩 テスト内で Electron API にアクセス
- 🕵️ Vitest のような API による Electron API のモック
インストール
WebdriverIO
をインストールする必要があります。手順はこちらにあります。
クイックスタート
すぐに始めるための推奨方法は、WDIO 設定ウィザードを使用することです。
手動クイックスタート
設定ウィザードを使用せずに開始するには、サービスと @wdio/cli
をインストールする必要があります:
npm install --dev @wdio/cli wdio-electron-service
または、お好みのパッケージマネージャー(pnpm、yarn など)を使用してください。
次に、WDIO 設定ファイルを作成します。参考になる例が必要な場合は、このリポジトリのサンプルディレクトリやWDIO 設定リファレンスページに動作する設定があります。
サービス配列に electron
を追加し、Electron の capability を設定する必要があります:
wdio.conf.ts
export const config = {
// ...
services: ['electron'],
capabilities: [
{
browserName: 'electron',
},
],
// ...
};
最後に、設定ファイルを使用してテストを実行します。
これにより、WDIO が Chrome や Firefox などのブラウザを扱うのと同じ方法で、アプリのインスタンスが起動されます。このサービスは、アプリの複数のインスタンスやアプリと Web ブラウザの異なる組み合わせを同時に実行する必要がある場合に、WDIO (並列) マルチリモートと連携して動作します。
アプリのパッケージ化に Electron Forge または Electron Builder を使用している場合、サービスは自動的にバンドルされた Electron アプリケーションへのパスを見つけようとします。カスタムサービス機能を通じてバイナリへのカスタムパスを提供できます:
wdio.conf.ts
export const config = {
// ...
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appBinaryPath: './path/to/built/electron/app.exe',
appArgs: ['foo', 'bar=baz'],
},
},
],
// ...
};
Electron がサポートする各オペレーティングシステムの appBinaryPath
の値を見つける方法については、設定ドキュメントを参照してください。
または、main.js
スクリプトへのパスを提供することで、未パッケージ化されたアプリをサービスに指定することもできます。Electron は node_modules
にインストールされている必要があります。未パッケージ化されたアプリは、Rollup、Parcel、Webpack などのバンドラーを使用してバンドルすることをお勧めします。
wdio.conf.ts
export const config = {
// ...
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appEntryPoint: './path/to/bundled/electron/main.bundle.js',
appArgs: ['foo', 'bar=baz'],
},
},
],
// ...
};
Chromedriver の設定
アプリが v26 より低いバージョンの Electron を使用している場合は、手動で Chromedriver を設定する必要があります。
これは、WDIO が Chrome for Testing を使用して Chromedriver をダウンロードするため、v115 以降の Chromedriver バージョンのみが提供されるためです。
ドキュメント
サービス設定
Chromedriver 設定
Electron API へのアクセス
Electron API のモック
ウィンドウ管理
スタンドアロンモード
開発
一般的な問題とデバッグ
開発
貢献に興味がある場合は、開発ドキュメントをお読みください。
統合例
WebdriverIO をサンプルアプリケーションに統合する方法を示す Electron ボイラープレート プロジェクトをご覧ください。また、このリポジトリの Example Apps および E2Es ディレクトリもご覧いただけます。
サポート
サービスを使用して WDIO を実行する際に問題が発生した場合は、まず一般的な問題をご確認ください。その後、WDIO メインフォーラムでディスカッションを開始してください。
Electron サービスのディスカッションフォーラムは WDIO のものほどアクティブではありませんが、Electron またはサービスの使用に特有の問題が発生している場合は、こちらでディスカッションを開始できます。