Zum Hauptinhalt springen

Electron Service

wdio-electron-service ist ein Paket von Drittanbietern, weitere Informationen finden Sie auf GitHub | npm


WebdriverIO-Service zum Testen von Electron-Anwendungen

Ermöglicht plattformübergreifendes E2E-Testen von Electron-Apps über das umfassende WebdriverIO-Ökosystem.

Geistiger Nachfolger von Spectron (RIP).

Features

Erleichtert das Testen von Electron-Anwendungen durch:

  • 🚗 automatische Einrichtung des erforderlichen Chromedrivers (für Electron v26 und höher)
  • 📦 automatische Pfaderkennung Ihrer Electron-Anwendung
  • 🧩 Zugriff auf Electron-APIs innerhalb Ihrer Tests
  • 🕵️ Mocking von Electron-APIs über eine Vitest-ähnliche API

Installation

Sie müssen WebdriverIO installieren, Anweisungen finden Sie hier.

Schnellstart

Der empfohlene Weg, um schnell loszulegen, ist die Verwendung des WDIO-Konfigurationsassistenten.

Manueller Schnellstart

Um ohne den Konfigurationsassistenten zu beginnen, müssen Sie den Service und @wdio/cli installieren:

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

Oder verwenden Sie Ihren bevorzugten Paketmanager - pnpm, yarn usw.

Erstellen Sie als Nächstes Ihre WDIO-Konfigurationsdatei. Wenn Sie Inspiration benötigen, gibt es eine funktionierende Konfiguration im example-Verzeichnis dieses Repositories sowie die WDIO-Konfigurationsreferenzseite.

Sie müssen electron zu Ihrem Services-Array hinzufügen und eine Electron-Capability festlegen, z.B.:

wdio.conf.ts

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

Führen Sie schließlich einige Tests mit Ihrer Konfigurationsdatei aus.

Dadurch wird eine Instanz Ihrer App auf die gleiche Weise gestartet, wie WDIO Browser wie Chrome oder Firefox behandelt. Der Service funktioniert mit WDIO (parallel) multiremote, wenn Sie zusätzliche Instanzen gleichzeitig ausführen müssen, z.B. mehrere Instanzen Ihrer App oder verschiedene Kombinationen aus Ihrer App und einem Webbrowser.

Wenn Sie Electron Forge oder Electron Builder zum Paketieren Ihrer App verwenden, versucht der Service automatisch, den Pfad zu Ihrer gebündelten Electron-Anwendung zu finden. Sie können einen benutzerdefinierten Pfad zur Binärdatei über benutzerdefinierte Service-Capabilities angeben, z.B.:

wdio.conf.ts

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

Sehen Sie sich die Konfigurationsdokumentation an, um herauszufinden, wie Sie den appBinaryPath-Wert für die verschiedenen von Electron unterstützten Betriebssysteme ermitteln können.

Alternativ können Sie den Service auf eine ungepackte App verweisen, indem Sie den Pfad zum main.js-Skript angeben. Electron muss in Ihren node_modules installiert sein. Es wird empfohlen, ungepackte Apps mit einem Bundler wie Rollup, Parcel, Webpack usw. zu bündeln.

wdio.conf.ts

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

Chromedriver-Konfiguration

Wenn Ihre App eine Version von Electron verwendet, die niedriger als v26 ist, müssen Sie Chromedriver manuell konfigurieren.

Dies liegt daran, dass WDIO Chrome for Testing verwendet, um Chromedriver herunterzuladen, das nur Chromedriver-Versionen v115 oder neuer bereitstellt.

Dokumentation

Service-Konfiguration
Chromedriver-Konfiguration
Zugriff auf Electron-APIs
Mocking von Electron-APIs
Fensterverwaltung
Standalone-Modus
Entwicklung
Häufige Probleme & Debugging

Entwicklung

Lesen Sie die Entwicklungsdokumentation, wenn Sie an einer Mitwirkung interessiert sind.

Beispiel-Integrationen

Sehen Sie sich unser Electron-Boilerplate-Projekt an, das zeigt, wie WebdriverIO in eine Beispielanwendung integriert werden kann. Sie können auch einen Blick auf die Verzeichnisse Example Apps und E2Es in diesem Repository werfen.

Support

Wenn Sie Probleme beim Ausführen von WDIO mit dem Service haben, sollten Sie zunächst die dokumentierten Häufigen Probleme überprüfen und dann eine Diskussion im WDIO-Hauptforum eröffnen.

Das Electron-Service-Diskussionsforum ist viel weniger aktiv als das WDIO-Forum, aber wenn das Problem, das Sie erleben, speziell für Electron oder die Verwendung des Services gilt, können Sie hier eine Diskussion eröffnen.

Welcome! How can I help?

WebdriverIO AI Copilot