ヘッドレスCIシステムでのテスト (Travis CI, Jenkins)
Chromium ベースであるが故に、 Electron の動作にはディスプレイドライバが必要です。 もし、Chromiumがディスプレイドライバを見つけられない場合、Electronは起動に失敗します。そのため、あなたがどのように実行するかに関わらず、あなたのテストは実行できません。 Travis、CircleCI、Jenkins などのシステムで Electron ベースのアプリをテストするには、ちょっとした設定が必要です。 要するに、仮想ディスプレイドライバを使う必要があります。
仮想ディスプレイの構成
まず、Xvfb をインストールします。 これは仮想フレームバッファで、X11 ディスプレイサーバプロトコルを実装しています。このフレームバッファは、画面出力を行うことなくメモリ内ですべてのグラフィック操作を行います。
それから、仮想 Xvfb スクリーンを作成し、DISPLAY 環境変数でそれを指定します。 Electron の Chromium は自動的に $DISPLAY
を 探してくれるので、アプリの設定は特に必要ありません。 このステップは、Anaïs Betts 氏の xvfb-maybe で自動化できます。テストコマンドに xvfb-maybe
を加えると、この小さなツールは必要な場合に自動で Xvfb を設定します。 Windows や macOSでは何もしません。
## Windows や macOS はelectron-mochaを起動します。
## Linuxで ヘッドレス環境の場合、これは
## xvfb-run electron-mocha ./test/*.js と同じです。
xvfb-maybe electron-mocha ./test/*.js
Travis CI
Travis については、Xvfb の使用に関するドキュメント をご参照ください。
Jenkins
Jenkins 用の Xvfb プラグインが利用可能です。
CircleCI
CircleCI はよくできており、 Xvfb と $DISPLAY
が すでにセットアップされているのでこれ以上の設定は不要 です。
AppVeyor
Windows上で AppVeyor は実行します。また Selenium、 Chromium、 Electron またそれに類似したツールをすぐに使用できます。 - 設定は必要ありません。