Servicio Electron
wdio-electron-service es un paquete de terceros, para más información por favor visite GitHub | npm
Servicio de WebdriverIO para probar aplicaciones Electron
Permite realizar pruebas E2E multiplataforma de aplicaciones Electron a través del extenso ecosistema de WebdriverIO.
Sucesor espiritual de Spectron (RIP).
Características
Facilita las pruebas de aplicaciones Electron mediante:
- 🚗 configuración automática del Chromedriver requerido (para Electron v26 y superior)
- 📦 detección automática de la ruta de tu aplicación Electron
- compatible con Electron Forge, Electron Builder y aplicaciones sin empaquetar
- 🧩 acceso a las APIs de Electron dentro de tus pruebas
- 🕵️ simulación de APIs de Electron a través de una API similar a Vitest
Instalación
Necesitarás instalar WebdriverIO
, las instrucciones se pueden encontrar aquí.
Inicio Rápido
La forma recomendada para comenzar rápidamente es utilizar el asistente de configuración de WDIO.
Inicio Rápido Manual
Para comenzar sin utilizar el asistente de configuración, necesitarás instalar el servicio y @wdio/cli
:
npm install --dev @wdio/cli wdio-electron-service
O utiliza tu gestor de paquetes preferido: pnpm, yarn, etc.
A continuación, crea tu archivo de configuración WDIO. Si necesitas inspiración para esto, hay una configuración funcional en el directorio de ejemplos de este repositorio, así como la página de referencia de configuración de WDIO.
Necesitarás añadir electron
a tu array de servicios y establecer una capacidad Electron, por ejemplo:
wdio.conf.ts
export const config = {
// ...
services: ['electron'],
capabilities: [
{
browserName: 'electron',
},
],
// ...
};
Finalmente, ejecuta algunas pruebas utilizando tu archivo de configuración.
Esto iniciará una instancia de tu aplicación de la misma manera que WDIO maneja navegadores como Chrome o Firefox. El servicio funciona con WDIO (paralelo) multiremote si necesitas ejecutar instancias adicionales simultáneamente, por ejemplo, múltiples instancias de tu aplicación o diferentes combinaciones de tu aplicación y un navegador web.
Si utilizas Electron Forge o Electron Builder para empaquetar tu aplicación, el servicio intentará automáticamente encontrar la ruta a tu aplicación Electron empaquetada. Puedes proporcionar una ruta personalizada al binario a través de capacidades de servicio personalizadas, por ejemplo:
wdio.conf.ts
export const config = {
// ...
capabilities: [
{
'browserName': 'electron',
'wdio:electronServiceOptions': {
appBinaryPath: './path/to/built/electron/app.exe',
appArgs: ['foo', 'bar=baz'],
},
},
],
// ...
};
Consulta el documento de configuración para saber cómo encontrar el valor de appBinaryPath
para los diferentes sistemas operativos soportados por Electron.
Alternativamente, puedes dirigir el servicio a una aplicación sin empaquetar proporcionando la ruta al script main.js
. Electron deberá estar instalado en tus node_modules
. Se recomienda empaquetar aplicaciones sin empaquetar utilizando un empaquetador como 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'],
},
},
],
// ...
};
Configuración de Chromedriver
Si tu aplicación utiliza una versión de Electron inferior a la v26, necesitarás configurar manualmente Chromedriver.
Esto se debe a que WDIO utiliza Chrome for Testing para descargar Chromedriver, que solo proporciona versiones de Chromedriver de v115 o más recientes.
Documentación
Configuración del Servicio
Configuración de Chromedriver
Acceso a las APIs de Electron
Simulación de APIs de Electron
Gestión de Ventanas
Modo Independiente
Desarrollo
Problemas Comunes y Depuración
Desarrollo
Lee el documento de desarrollo si estás interesado en contribuir.
Integraciones de Ejemplo
Consulta nuestro proyecto Electron boilerplate que muestra cómo integrar WebdriverIO en una aplicación de ejemplo. También puedes echar un vistazo a los directorios de Aplicaciones de Ejemplo y E2Es en este repositorio.
Soporte
Si tienes problemas para ejecutar WDIO con el servicio, deberías consultar los Problemas Comunes documentados en primera instancia, y luego abrir una discusión en el foro principal de WDIO.
El foro de discusión del servicio Electron es mucho menos activo que el de WDIO, pero si el problema que estás experimentando es específico de Electron o del uso del servicio, puedes abrir una discusión aquí.