跳至主要內容

設定

可以透過在服務層級或能力層級設定 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()。這將清除模擬歷史記錄,並將其實現重設為空函數(將傳回 undefined)。

類型:boolean

restoreMocks:

在每次測試之前,對所有模擬的 API 呼叫 .mockRestore()。這將還原原始的 API 函數,模擬將被移除。

類型:boolean

Chromedriver 設定

wdio-electron-service 需要 Chromedriver 才能運作。Chromedriver 版本需要適合您的應用程式所建置的 Electron 版本,您可以讓服務處理(預設),也可以自行管理。

服務管理

如果您沒有指定 Chromedriver 二進位檔,則服務將下載並使用適合您應用程式的 Electron 版本的版本。您的應用程式的 Electron 版本由您的 package.jsonelectronelectron-nightly 的版本決定,但是您可能想要覆蓋此行為,例如,如果您要測試的應用程式與測試位於不同的儲存庫中。您可以透過設定 browserVersion 能力來手動指定 Electron 版本,如下列範例設定所示

wdio.conf.ts

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

使用者管理

如果您的應用程式使用的 Electron 版本低於 v26,則您需要手動設定 Chromedriver。

這是因為 WDIO 使用 Chrome for Testing 來下載 Chromedriver,這僅提供 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