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
- prend en charge Electron Forge, Electron Builder et les applications non empaquetées
- 🧩 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.