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
- unterstützt Electron Forge, Electron Builder und ungepackte Apps
- 🧩 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.