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

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