Vai al contenuto principale

Servizio Electron

wdio-electron-service è un pacchetto di terze parti, per maggiori informazioni consulta GitHub | npm


Servizio WebdriverIO per testare applicazioni Electron

Consente test E2E multipiattaforma di applicazioni Electron tramite l'ampio ecosistema WebdriverIO.

Successore spirituale di Spectron (RIP).

Caratteristiche

Rende il testing delle applicazioni Electron molto più semplice tramite:

  • 🚗 configurazione automatica di Chromedriver richiesto (per Electron v26 e superiori)
  • 📦 rilevamento automatico del percorso della tua applicazione Electron
  • 🧩 accesso alle API Electron all'interno dei tuoi test
  • 🕵️ simulazione delle API Electron tramite un'API simile a Vitest

Installazione

Dovrai installare WebdriverIO, le istruzioni possono essere trovate qui.

Avvio Rapido

Il modo consigliato per iniziare rapidamente è utilizzare il wizard di configurazione WDIO.

Avvio Rapido Manuale

Per iniziare senza utilizzare il wizard di configurazione, dovrai installare il servizio e @wdio/cli:

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

Oppure utilizza il gestore di pacchetti che preferisci - pnpm, yarn, ecc.

Successivamente, crea il tuo file di configurazione WDIO. Se hai bisogno di ispirazione, c'è una configurazione funzionante nella directory di esempio di questo repository, oltre alla pagina di riferimento della configurazione WDIO.

Dovrai aggiungere electron al tuo array di servizi e impostare una capacità Electron, ad esempio:

wdio.conf.ts

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

Infine, esegui alcuni test utilizzando il tuo file di configurazione.

Questo avvierà un'istanza della tua app nello stesso modo in cui WDIO gestisce browser come Chrome o Firefox. Il servizio funziona con WDIO (parallel) multiremote se hai bisogno di eseguire ulteriori istanze contemporaneamente, ad esempio più istanze della tua app o diverse combinazioni della tua app e un browser Web.

Se utilizzi Electron Forge o Electron Builder per pacchettizzare la tua app, il servizio tenterà automaticamente di trovare il percorso verso la tua applicazione Electron pacchettizzata. Puoi fornire un percorso personalizzato al binario tramite capacità di servizio personalizzate, ad esempio:

wdio.conf.ts

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

Consulta il documento di configurazione per scoprire come trovare il valore appBinaryPath per i diversi sistemi operativi supportati da Electron.

In alternativa, puoi indirizzare il servizio a un'app non pacchettizzata fornendo il percorso allo script main.js. Electron dovrà essere installato nei tuoi node_modules. Si consiglia di pacchettizzare le app non impacchettate utilizzando un bundler come Rollup, Parcel, Webpack, ecc.

wdio.conf.ts

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

Configurazione Chromedriver

Se la tua app utilizza una versione di Electron inferiore alla v26, dovrai configurare manualmente Chromedriver.

Questo perché WDIO utilizza Chrome for Testing per scaricare Chromedriver, che fornisce solo versioni di Chromedriver v115 o successive.

Documentazione

Configurazione del Servizio
Configurazione Chromedriver
Accesso alle API Electron
Simulazione delle API Electron
Gestione delle Finestre
Modalità Standalone
Sviluppo
Problemi Comuni e Debugging

Sviluppo

Leggi il documento di sviluppo se sei interessato a contribuire.

Integrazioni di esempio

Dai un'occhiata al nostro progetto Electron boilerplate che mostra come integrare WebdriverIO in un'applicazione di esempio. Puoi anche dare un'occhiata alle directory Example Apps e E2Es in questo repository.

Supporto

Se riscontri problemi nell'esecuzione di WDIO con il servizio, dovresti controllare i Problemi Comuni documentati in prima istanza, quindi aprire una discussione nel forum principale di WDIO.

Il forum di discussione del servizio Electron è molto meno attivo di quello di WDIO, ma se il problema che stai riscontrando è specifico di Electron o dell'utilizzo del servizio, puoi aprire una discussione qui.

Welcome! How can I help?

WebdriverIO AI Copilot