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. Si Chromium ne peut pas trouver un pilote d’affichage, Electron échouera tout simplement au lancement - et par conséquent, n'exécutera aucun de vos tests, peu importe comment vous les exécutez. Tester des applications basées sur Electron à l'aide de Travis, CircleCI, Jenkins ou autre système d'intégration similaire va donc nécessiter un peu de 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.