メインコンテンツにスキップ

ヘッドレス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では、何も行いません。

## On Windows or macOS, this invokes electron-mocha
## On Linux, if we are in a headless environment, this will be equivalent
## to xvfb-run electron-mocha ./test/*.js
xvfb-maybe electron-mocha ./test/*.js

Travis CI

Travisについては、Xvfbの使用に関するドキュメントを参照してください。

Jenkins

Jenkinsの場合、Xvfbプラグインが利用可能です

CircleCI

CircleCIは素晴らしく、Xvfbと$DISPLAYがすでに設定されているため、追加の構成は必要ありません。

AppVeyor

AppVeyorはWindowsで実行され、Selenium、Chromium、Electronなどのツールをすぐにサポートします。構成は必要ありません。