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

Electron サービス

wdio-electron-service は第三者パッケージです。詳細については GitHub | npm をご覧ください。


Electron アプリケーションをテストするための WebdriverIO サービス

WebdriverIO のエコシステムを活用して、クロスプラットフォームでの Electron アプリの E2E テストを可能にします。

Spectron の精神的後継 (終了)。

特徴

以下の機能により、Electron アプリケーションのテストがより簡単になります:

  • 🚗 必要な Chromedriver の自動セットアップ(Electron v26 以上)
  • 📦 Electron アプリケーションのパスの自動検出
  • 🧩 テスト内で 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 またはサービスの使用に特有の問題が発生している場合は、こちらでディスカッションを開始できます。

Welcome! How can I help?

WebdriverIO AI Copilot