Перейти до основного вмісту

Electron Сервіс

wdio-electron-service є пакетом від сторонніх розробників, для отримання додаткової інформації дивіться GitHub | npm


WebdriverIO сервіс для тестування Electron додатків

Забезпечує крос-платформне E2E тестування Electron додатків через розширену екосистему WebdriverIO.

Духовний наступник Spectron (RIP).

Особливості

Спрощує тестування Electron додатків завдяки:

  • 🚗 автоматичному налаштуванню потрібного Chromedriver (для Electron v26 і вище)
  • 📦 автоматичному виявленню шляху до вашого Electron додатку
  • 🧩 доступу до Electron API у ваших тестах
  • 🕵️ мокуванню Electron API через API, схожий на Vitest

Встановлення

Вам потрібно встановити WebdriverIO, інструкції можна знайти тут.

Швидкий старт

Рекомендований спосіб швидко почати роботу — використати майстер налаштування WDIO.

Ручний швидкий старт

Щоб почати без використання майстра налаштування, вам потрібно встановити сервіс та @wdio/cli:

npm install --dev @wdio/cli wdio-electron-service

Або використовуйте свій улюблений пакетний менеджер — pnpm, yarn тощо.

Далі створіть свій конфігураційний файл WDIO. Якщо вам потрібно натхнення, є робоча конфігурація в каталозі прикладів цього репозиторію, а також сторінка посилань на конфігурацію WDIO.

Вам потрібно додати electron до масиву сервісів і встановити можливість Electron, наприклад:

wdio.conf.ts

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

Нарешті, запустіть тести за допомогою вашого конфігураційного файлу.

Це запустить екземпляр вашого додатку таким самим чином, як WDIO обробляє браузери, такі як Chrome або Firefox. Сервіс працює з WDIO (паралельним) multiremote, якщо вам потрібно запустити додаткові екземпляри одночасно, наприклад, кілька екземплярів вашого додатка або різні комбінації вашого додатка та веб-браузера.

Якщо ви використовуєте 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'],
},
},
],
// ...
};

Перегляньте документацію з конфігурації, щоб дізнатися, як знайти значення appBinaryPath для різних операційних систем, які підтримує Electron.

Альтернативно, ви можете направити сервіс на неупакований додаток, надавши шлях до скрипту 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

Якщо ваш додаток використовує версію Electron нижче v26, то вам потрібно вручну налаштувати Chromedriver.

Це тому, що WDIO використовує Chrome for Testing для завантаження Chromedriver, який надає лише версії Chromedriver v115 або новіше.

Документація

Конфігурація сервісу
Конфігурація Chromedriver
Доступ до Electron API
Мокування Electron API
Управління вікнами
Автономний режим
Розробка
Поширені проблеми та відлагодження

Розробка

Прочитайте документацію з розробки, якщо ви зацікавлені в тому, щоб зробити внесок.

Приклади інтеграцій

Перегляньте наш шаблонний проект Electron, який демонструє, як інтегрувати WebdriverIO в прикладний додаток. Ви також можете переглянути каталоги Example Apps та E2Es у цьому репозиторії.

Підтримка

Якщо у вас виникають проблеми з запуском WDIO з сервісом, вам слід спочатку перевірити документовані Поширені проблеми, а потім відкрити обговорення в головному форумі WDIO.

Форум обговорення сервісу Electron набагато менш активний, ніж форум WDIO, але якщо проблема, яку ви відчуваєте, специфічна для Electron або використання сервісу, ви можете відкрити обговорення тут.

Welcome! How can I help?

WebdriverIO AI Copilot