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.