跳至主要內容

在無頭 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 和類似工具 - 不需要任何配置。