跳转至

在无头 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 和类似工具——无需配置。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron