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

时间:2014-01-14 21:59:30

标签: 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

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

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

詹金斯1.546 NodeJs 0.10.24 Karma 0.10.9

编辑:

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

No protocol specified
No protocol specified
No protocol specified
No protocol specified
Error: cannot open display: :0

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

2 个答案:

答案 0 :(得分:5)

知道了。事实证明,问题源于对如何首先运行业力的误解。

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

编辑:安装xvnc plugin,然后将其激活以进行构建,以便进行业力开始和业力运行。

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

FIREFOX_BIN=/usr/bin/X11/firefox
CHROME_BIN=/usr/bin/X11/google-chrome

答案 1 :(得分:1)

您是否介意使用--log-level调试以及--no-colors运行业力,以便我们更好地了解失败的原因?

我还尝试过其他浏览器吗? 我经常在Jenkins中运行GUI工具时遇到问题。

您可能想尝试使用PhantomJS(http://phantomjs.org/)运行测试套件,看看无头浏览器是否可以解决问题