2014-01-14 43 views
5

我已經設置了一個應該運行Firefox的Jenkins作業。與Jenkins用戶簽署Ubuntu,我可以在沒有任何問題的情況下手動啓動Firefox。但是,當我在Jenkins中運行作業時,得到:Karma無法通過Jenkins和Ubuntu啓動Firefox 12.04

[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 [email protected]: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 噶0.10.9

編輯:

這可能是很好的知道,我不得不這樣做一個jenkins用戶能夠首先運行firefox的操作。作爲我的主要用戶,我必須讓其他用戶通過執行xhost +local:來啓動Firefox。沒有這一點,詹金斯用戶不斷收到以下錯誤。

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

雖然這可能是一個單獨的問題我解決了,它可能對我提出的問題發生,所以我覺得重要的是要增加這個細節。

+0

我不知道太多關於詹金斯安裝與Linux,但我發現,如果我能對詹金斯手動,但不運行的東西的話,通常是與詹金斯是如何在環境中運行,它通常缺乏權限的人做特定類型的連接。我也會嘗試在盒子上運行確切的命令,看看我是否看到詹金斯正在記錄的東西。 –

+0

我不確定'在框中運行確切的命令'是什麼意思? – IanBussieres

+0

我要檢查的第一點是去karma運行時文件夾(它從哪裏運行),然後檢查那裏執行firefox的權限。我嘗試看看firefox是否可以從該文件夾內執行'execute'(命令行)(我的假設是擁有業力的用戶只能運行firefox)。然後,業力的行爲是這樣的,只有超級用戶才能擁有這樣的特權。但對我而言,Jenkins的權限完全是一個新的主題。你做到了,你在這方面比我好。 –

回答

5

明白了。事實證明,這個問題起源於對如何首先運行業力的誤解。

Jenkins任務正在執行karma start,並將autowatch設置爲true。相反,我用rc.local中的autowatch false激活了karma(腳本在啓動時運行),Jenkins任務執行karma run。這完全解決了這個問題。

編輯:安裝xvnc plugin,並激活它爲構建工程的業力開始和業力運行。

編輯:當我升級到14.04時,問題又回來了。解決方法是確保構建中注入的環境變量指向X11版本。

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

你介意--log-level調試和--no-colors運行業力,所以我們可以有一個更好的理解爲什麼它失敗的原因?

我你還試過用另一種瀏覽器? 我在Jenkins中運行GUI工具時經常遇到問題。

你可能想嘗試運行測試套件與PhantomJS(http://phantomjs.org/)只是爲了看看一個無頭的瀏覽器可以解決這個問題