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. If Chromium can't find a display driver, Electron will fail to launch - and therefore not execute any of your tests, regardless of how you are running them. 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.