Saltar al contenido principal

Pruebas de sistemas de CI sin cabeceras (Travis CI, Jenkins)

Al estar basado en Chromium, Electron requiere un controlador para funcionar. Si chromium no puede encontrar un controlador de pantalla, Electron no se lanzará y por lo tanto no ejecuta ningunas de sus pruebas, independientemente de como usted las está corriendo. Testing Electron-based apps on Travis, CircleCI, Jenkins or similar Systems requires therefore a little bit of configuration. En esencia, necesitamos un controlador de pantalla virtual.

Configurando un servidor de pantalla virtual

Primero, instala Xvfb. Es un framebuffer virtual, implementando el protocolo de servidor de pantalla X11 - realiza todas las operaciones gráficas en la memoria sin mostrar nada en el monitor, que es exactamente lo que necesitamos.

Entonces, crea una pantalla virtual Xvfb y exporta una variable de entorno llamada DISPLAY que apunta a ella. Chromium en electron buscará automáticamente por $DISPLAY, así que su aplicación no requerirá más configuraciones. Este paso puede ser automatizado con Anaïs Betts' xvfb-maybe: prepara tus pruebas de comandos con xvfb-maybe y la pequeña herramienta automáticamente configurará Xvfb, si es requerido por el sistema actual. En Windows o macOS, no hará nada.

## En Windows o macOS, esto invoca electron-mocha
## En Linux, si estamos en un entorno sin cabeza, esto será equivalente
## a xvfb-run electron-mocha ./test/*.js
xvfb-maybe electron-mocha ./test/*.js

Travis CI

For Travis, see its docs on using Xvfb.

Jenkins

Para Jenkins, un plugin de Xvfb está disponible.

CircleCI

CircleCI is awesome and has Xvfb and $DISPLAY already set up, so no further configuration is required.

AppVeyor

AppVeyor corre en Windows, soportando Selenium, Chromium, electron y herramientas fuera de la caja similares - no se requiere configuración.