Aller au contenu principal

Service Electron

wdio-electron-service est un package tiers, pour plus d'informations veuillez consulter GitHub | npm


Service WebdriverIO pour tester les applications Electron

Permet les tests E2E multiplateforme des applications Electron via l'écosystème étendu de WebdriverIO.

Successeur spirituel de Spectron (RIP).

Fonctionnalités

Facilite grandement le test des applications Electron grâce à :

  • 🚗 configuration automatique du Chromedriver requis (pour Electron v26 et supérieur)
  • 📦 détection automatique du chemin de votre application Electron
  • 🧩 accès aux API Electron dans vos tests
  • 🕵️ simulation des API Electron via une API de style Vitest

Installation

Vous devrez installer WebdriverIO, les instructions se trouvent ici.

Démarrage rapide

La méthode recommandée pour démarrer rapidement est d'utiliser l'assistant de configuration WDIO.

Démarrage rapide manuel

Pour commencer sans utiliser l'assistant de configuration, vous devrez installer le service et @wdio/cli :

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

Ou utilisez votre gestionnaire de paquets préféré - pnpm, yarn, etc.

Ensuite, créez votre fichier de configuration WDIO. Si vous avez besoin d'inspiration, il existe une configuration fonctionnelle dans le répertoire d'exemples de ce dépôt, ainsi que la page de référence de configuration WDIO.

Vous devrez ajouter electron à votre tableau de services et définir une capacité Electron, par exemple :

wdio.conf.ts

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

Enfin, exécutez des tests en utilisant votre fichier de configuration.

Cela lancera une instance de votre application de la même manière que WDIO gère les navigateurs comme Chrome ou Firefox. Le service fonctionne avec WDIO (parallel) multiremote si vous avez besoin d'exécuter des instances supplémentaires simultanément, par exemple plusieurs instances de votre application ou différentes combinaisons de votre application et d'un navigateur Web.

Si vous utilisez Electron Forge ou Electron Builder pour empaqueter votre application, le service tentera automatiquement de trouver le chemin vers votre application Electron empaquetée. Vous pouvez fournir un chemin personnalisé vers le binaire via des capacités de service personnalisées, par exemple :

wdio.conf.ts

export const config = {
// ...
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appBinaryPath: './path/to/built/electron/app.exe',
appArgs: ['foo', 'bar=baz'],
},
},
],
// ...
};

Consultez la documentation de configuration pour savoir comment trouver la valeur de votre appBinaryPath pour les différents systèmes d'exploitation pris en charge par Electron.

Alternativement, vous pouvez diriger le service vers une application non empaquetée en fournissant le chemin vers le script main.js. Electron devra être installé dans vos node_modules. Il est recommandé de regrouper les applications non empaquetées à l'aide d'un bundler tel que Rollup, Parcel, Webpack, etc.

wdio.conf.ts

export const config = {
// ...
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appEntryPoint: './path/to/bundled/electron/main.bundle.js',
appArgs: ['foo', 'bar=baz'],
},
},
],
// ...
};

Configuration de Chromedriver

Si votre application utilise une version d'Electron inférieure à v26, vous devrez configurer manuellement Chromedriver.

Cela est dû au fait que WDIO utilise Chrome for Testing pour télécharger Chromedriver, qui ne fournit que des versions de Chromedriver v115 ou plus récentes.

Documentation

Configuration du service
Configuration de Chromedriver
Accès aux API Electron
Simulation des API Electron
Gestion des fenêtres
Mode autonome
Développement
Problèmes courants et débogage

Développement

Lisez la documentation de développement si vous souhaitez contribuer.

Exemples d'intégrations

Consultez notre projet Electron boilerplate qui montre comment intégrer WebdriverIO dans une application exemple. Vous pouvez également consulter les répertoires Example Apps et E2Es dans ce dépôt.

Support

Si vous rencontrez des problèmes lors de l'exécution de WDIO avec le service, vous devriez d'abord consulter les Problèmes courants documentés, puis ouvrir une discussion dans le forum principal de WDIO.

Le forum de discussion du service Electron est beaucoup moins actif que celui de WDIO, mais si le problème que vous rencontrez est spécifique à Electron ou à l'utilisation du service, vous pouvez ouvrir une discussion ici.

Welcome! How can I help?

WebdriverIO AI Copilot