Karma无法使用Jenkins和Ubuntu 12.04启动Firefox

Ian*_*res 5 jenkins karma-runner

我已经设置了一个应该运行Firefox的Jenkins作业.与Jenkins用户一起登录Ubuntu,我可以毫无问题地手动启动Firefox.但是,当我在Jenkins工作时,我得到:

[EnvInject] - Loading node environment variables.
Building in workspace /var/lib/jenkins/jobs/cbx4-ci/workspace
Fetching changes from the remote Git repository
Fetching upstream changes from git@bitbucket.org:cognibox/cbx4.git
Checking out Revision c90b791227b3788c2e023fd13db74ed1664428d1 (origin/master)
[EnvInject] - Executing scripts and injecting environment variables after the SCM step.
[EnvInject] - Injecting as environment variables the properties content 
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
FIREFOX_BIN=/usr/bin/firefox

[EnvInject] - Variables injected successfully.
[workspace] $ /bin/sh -xe /tmp/hudson985724635788604565.sh
+ bash -ex runkarma.sh
+ node_modules/karma/bin/karma start config/karma.conf.js --reporters junit
[32mINFO [karma]: [39mKarma v0.10.9 server started at http://localhost:9876/
[32mINFO [launcher]: [39mStarting browser Firefox
[31mERROR [launcher]: [39mCannot start Firefox

[32mINFO [launcher]: [39mTrying to start Firefox again.
[31mERROR [launcher]: [39mCannot start Firefox

[32mINFO [launcher]: [39mTrying to start Firefox again.
[31mERROR [launcher]: [39mCannot start Firefox
Run Code Online (Sandbox Code Playgroud)

如您所见,我已将环境变量注入指向Firefox.

一些有用的版本号,如果这可以帮助:

Jenkins 1.546 NodeJs 0.10.24 Karma 0.10.9

编辑:

可能很高兴知道我必须为jenkins用户做一个操作,以便能够首先运行firefox.作为我的主要用户,我必须让其他用户通过执行来启动Firefox xhost +local:.没有它,jenkins用户不断收到以下错误.

No protocol specified
No protocol specified
No protocol specified
No protocol specified
Error: cannot open display: :0
Run Code Online (Sandbox Code Playgroud)

虽然这可能是我解决的一个单独的问题,但它可能会在我问的问题上发生,所以我觉得重要的是添加这个细节.

Ian*_*res 5

得到它了.事实证明,问题源于对如何首先运行业力的误解.

Jenkins任务正在进行karma start,autowatch设置为true.相反,我在rc.local中启动了带有autowatch false的业力(脚本在启动时运行),然后执行Jenkins任务karma run.这完全解决了这个问题.

编辑:安装xvnc插件,并激活它以构建karma开始和业力运行.

编辑:当我升级到14.04时,问题又回来了.修复是为了确保构建中注入的环境变量指向X11版本.

FIREFOX_BIN=/usr/bin/X11/firefox
CHROME_BIN=/usr/bin/X11/google-chrome
Run Code Online (Sandbox Code Playgroud)