Aller au contenu principal

Tests avec les systèmes d'intégration continue sans affichage (Travis CI, Jenkins)

Étant basé sur Chromium, Electron nécessite pour fonctionner un pilote d’affichage. 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 substance, nous devons utiliser un pilote d’affichage virtuel.

Configuration du serveur d’affichage virtuel​

Tout d’abord, installez Xvfb. Il s'agit d'un framebuffer virtuel, mettant en oeuvre le protocole du serveur d'affichage X11 - il effectue toutes les opérations graphiques en mémoire sans afficher quoi que ce soit à l'écran, ce qui correspond exactement à ce dont nous avons besoin.

Ensuite, créez un écran virtuel Xvfb et exportez une variable d'environnement nommée DISPLAY pointant sur lui. Chromium dans Electron va automatiquement rechercher $DISPLAY, ce qui évitera toute configuration supplémentaire de votre application. Cette étape peut être automatisée avec Anaïs Betts xvfb-peut-être : Préfixer vos commandes de test avec xvfb-maybe et le petit outil configurera automatiquement Xvfb, si requis par le système actuel. Sous Windows ou macOS, il ne se passera rien.

## Sous Windows ou macOS, electron-mocha est invoque
## Sous Linux, si on est dans un environement headless, cela reviendra
## à xvfb-run electron-mocha ./test/*.js
xvfb-maybe electron-mocha ./test/*.js

Travis CI​

Pour Travis, voir sa doc sur l'utilisation de Xvfb.

Jenkins​

Pour Jenkins, un plugin Xvfb est disponible.

CircleCI​

CircleCI est idéal et est fourni avec Xvfb et $DISPLAY préconfigurés, afin qu'aucune nouvelle configuration ne soit requise.

AppVeyor​

AppVeyor s'exécute sur Windows, supportant Selenium, Chromium, Electron et outils similaires - aucune configuration n’est requise.