Electron Headless CI Systems 測試 (Travis CI, Jenkins)

2018-03-21 19:10 更新

Electron 基于 Chromium,所以需要一個顯示驅(qū)動使其運轉(zhuǎn)。如果 Chromium 無法找到一個顯示驅(qū)動, ELectron 會啟動失敗,因此無論你如何去運行它,Electron 不會執(zhí)行你的任何測試。在 Travis,Circle, Jenkins 或者類似的系統(tǒng)上測試基于Electron的應(yīng)用時,需要進行一些配置。本質(zhì)上,我們需要使用一個 虛擬的顯示驅(qū)動。

配置虛擬顯示服務(wù)器

首先安裝 Xvfb。 這是一個虛擬的幀緩沖,實現(xiàn)了X11顯示服務(wù)協(xié)議,所有的圖形操作都在內(nèi)存中表現(xiàn),而不需要顯示在 任何屏幕輸出設(shè)備上。這正是我們所需要的。

然后創(chuàng)建一個虛擬的xvfb屏幕并且導(dǎo)出一個指向他的名為 DISPLAY 的環(huán)境變量。Electron 中的 Chromium 會自動的去尋找 $DISPLAY,所以你的應(yīng)用不需要再去進行配置。這一步可以通過 Paul Betts 的 xvfb-maybe 實現(xiàn)自動化:如果系統(tǒng)需要,在xvfb-maybe前加上你的測試命令 然后這個小工具會自動的設(shè)置 xvfb。在 Windows 或者 macOS 系統(tǒng)下,它不會執(zhí)行任何東西。

## 在 Windows 或者 macOS,這只是調(diào)用 electron-mocha
## 在 Linux, 如果我們在 headless 環(huán)境,這將是等同于
## xvfb-run electron-mocha ./test/*.js
xvfb-maybe electron-mocha ./test/*.js

Travis CI

在 Travis 上, 你的 .travis.yml 應(yīng)該和下面的代碼相似:

addons:
  apt:
    packages:
      - xvfb

install:
  - export DISPLAY=':99.0'
  - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &

Jenkins

Jenkins下, 有一個可用的 Xvfb插件。

Circle CI

Circle CI 是非常棒的而且有xvfb,$DISPLAY 也 已經(jīng)搭建,所以不需要再進行設(shè)置。

AppVeyor

AppVeyor 運行于 Windows 上,支持 Selenium,Chromium,Electron 以及一些類似的工具,開箱即用,無需配置。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號