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
- supporta Electron Forge, Electron Builder e app non pacchettizzate
- 🧩 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.