本文へスキップ

設定

サービスは、サービスレベルまたは機能レベルでwdio:electronServiceOptionsを設定することで設定できます。機能レベルの設定が優先されます。例えば、次のWebdriverIO設定

wdio.conf.ts

export const config = {
// ...
services: [
[
'electron',
{
appBinaryPath: '/foo/bar/myApp'
},
],
],
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appBinaryPath: '/foo/bar/myOtherApp'
appArgs: ['foo', 'bar'],
},
},
],
// ...
};

…は、次の設定オブジェクトになります。

{
"appBinaryPath": "/foo/bar/myOtherApp",
"appArgs": ["foo", "bar"]
}

サービスオプション

このサービスは、以下の設定オプションをサポートしています。

appBinaryPath:

テスト対象アプリのElectronバイナリのパスです。ほとんどの場合、サービスが自動的にアプリのパスを決定しますが、何らかの理由で失敗した場合(例:アプリがテストとは異なるリポジトリにある場合)、この値を手動で設定することをお勧めします。

型: string

appArgs:

テスト実行時にアプリに渡される文字列引数の配列です。Electronのコマンドラインスイッチと一部のChromiumスイッチをここで使用できます。

型: string[]

clearMocks:

各テストの前に、すべてのモックAPIで.mockClear()を呼び出します。これにより、モック履歴はクリアされますが、実装はリセットされません。

型: boolean

resetMocks:

各テストの前に、すべてのモックAPIで.mockReset()を呼び出します。これにより、モック履歴がクリアされ、実装が空の関数にリセットされます(未定義を返します)。

型: boolean

restoreMocks:

各テストの前に、すべてのモックAPIで.mockRestore()を呼び出します。これにより、元のAPI関数が復元され、モックは削除されます。

型: boolean

Chromedriverの設定

wdio-electron-serviceは動作するためにChromedriverが必要です。Chromedriverのバージョンは、アプリがビルドされたElectronのバージョンに適切なものである必要があります。サービスで処理させる(デフォルト)か、自分で管理することができます。

サービス管理

Chromedriverバイナリを指定しない場合、サービスはアプリのElectronバージョンに適切なバージョンをダウンロードして使用します。アプリのElectronバージョンは、package.json内のelectronまたはelectron-nightlyのバージョンによって決定されますが、この動作を上書きしたい場合があります(例えば、テスト対象のアプリがテストとは異なるリポジトリにある場合)。以下の例の設定にあるように、browserVersion機能を設定して、Electronバージョンを手動で指定できます。

wdio.conf.ts

export const config = {
// ...
services: ['electron'],
capabilities: [
{
browserName: 'electron',
browserVersion: '28.0.0',
},
],
// ...
};

ユーザー管理

アプリがv26より前のバージョンのElectronを使用している場合は、Chromedriverを手動で設定する必要があります。

これは、WDIOがChromedriverをダウンロードするためにChrome for Testingを使用しており、v115以降のChromedriverバージョンしか提供していないためです。

Chromedriverを自分で管理するには、直接インストールするか、electron-chromedriverなどの他の方法でインストールできます。この場合、カスタムのwdio:chromedriverOptions機能を通じて、WebdriverIOにChromedriverバイナリの場所を伝える必要があります。

例えば、Electron v19アプリでWDIOを使用するには、https://chromedriver.chromium.org/downloadsからChromedriver 102.0.5005.61をダウンロードする必要があります。その後、WDIO設定でバイナリのパスを次のように指定する必要があります。

wdio.conf.ts

export const config = {
// ...
services: ['electron'],
capabilities: [
{
'browserName': 'electron',
'wdio:chromedriverOptions': {
binary: '/Users/wdio/Downloads/chromedriver', // path to Chromedriver you just downloaded
},
},
],
// ...
};

ようこそ!お手伝いできることはありますか?

WebdriverIO AI Copilot