第一次询问关于SO的问题。请善待。我会慷慨地接受问题反馈。
我在openSUSE Linux机器上运行了一个Jenkins实例,我没有root访问权限。我已经为Jenkins配置了一个自定义工具安装,它可以从https://ftp.mozilla.org/pub/firefox/releases/56.0.1/linux-x86_64/en-US/firefox-56.0.1.tar.bz2
我有一个基于Angular CLI构建的Angular应用程序。这是我的karma.conf.js的相关部分:
browsers: ['FirefoxHeadless'],
singleRun: true,
customLaunchers: {
'FirefoxHeadless': {
base: 'Firefox',
flags: [
'-headless',
],
}
我的Jenkins有一个工作,可以使用带有ng test
标志的Firefox 56.0.1获取Angular应用程序并运行-headless
。但是,它失败了以下反馈:
ERROR [launcher]: [39mCannot start Firefox
(process:3050): GLib-CRITICAL **: g_slice_set_config: assertion
'sys_page_size == 0' failed
Error: no display specified
对此错误的研究表明需要为Selenium运行xvfb并设置DISPLAY
环境变量,以便Firefox可以连接到该显示。由于这应该是无头的,我不相信xvfb应该是必需的,因为无头运行不应该需要图形显示(我不想完成尝试在我没有root的机器上安装xvfb的工作进入)。添加DISPLAY
环境变量只会将错误更改为cannot open display: :10
。
如何让我的jenkins实例在无头版Firefox中运行karma测试?
答案 0 :(得分:1)
在搜索为什么Firefox
作为浏览器在Windows上可以运行但在我的非GUI linux构建服务器上不能运行时,遇到了您的答案。看到您为自定义浏览器启动配置FirefoxHeadless
命名后,我记得以前听说过这样的预设:
Firefox launcher for Karma支持一些现成的启动配置
它将使用正确的启动选项启动Firefox:
Firefox
FirefoxHeadless
FirefoxDeveloper
FirefoxDeveloperHeadless
FirefoxAurora
FirefoxAuroraHeadless
FirefoxNightly
FirefoxNightlyHeadless
可通过NPM获得该软件包。使用此功能可能会为您和其他人省去其他启动配置的麻烦。