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構成ファイルを作成します。これに関するインスピレーションが必要な場合は、このリポジトリのexampleディレクトリと、WDIO構成リファレンスページに動作する構成があります。
electron
をサービスの配列に追加し、Electronのケーパビリティを設定する必要があります。例:
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'],
},
},
],
// ...
};
または、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がChromedriverをダウンロードするためにChrome for Testingを使用するためであり、v115以降のChromedriverバージョンのみを提供するためです。
ドキュメント
サービス構成
Chromedriverの構成
Electron APIへのアクセス
Electron APIのモック
スタンドアロンモード
開発
一般的な問題とデバッグ
開発
貢献に関心がある場合は、開発ドキュメントをご覧ください。
統合例
WebdriverIOをサンプルアプリケーションに統合する方法を紹介するElectronボイラープレートプロジェクトをご覧ください。また、このリポジトリのExample AppsおよびE2Esディレクトリも参照できます。
サポート
サービスでWDIOの実行に問題がある場合は、最初にドキュメント化された一般的な問題を確認し、次にメインのWDIOフォーラムでディスカッションを開始する必要があります。
ElectronサービスディスカッションフォーラムはWDIOのものよりもはるかにアクティブではありませんが、発生している問題がElectron固有またはサービスの使用に関するものである場合は、こちらでディスカッションを開始できます。