
這個問題最初是在 Stackoverflow 中提出的,但後來我認為它可能更適合 Serverfault,所以我把它移到了這裡。
我正在嘗試透過將其中一些項目移至從屬節點來重新安排我的 Jenkins 專案。我的問題是,同一個專案在主伺服器上執行時運行良好,但在我試圖將其移動到的從伺服器上失敗並出現神秘錯誤。問題不在於 Jenkins 本身,因為我在 shell 中手動執行它得到了相同的結果。
我在從站上得到的錯誤是:
PHPUnit_Extensions_Selenium2TestCase_Exception:目前沒有活動會話來執行「url」指令。您可能試圖在 setUp() 中設定一些帶有 incorr 的選項 等設定者名稱。您可以考慮使用 setUpPage() 來代替。
這通常表示程式碼是正確的,但完全相同的專案在主節點上沒有產生錯誤,並且測試成功運行。
到目前為止我嘗試過的:
- 將從節點上的 PHPUnit 版本變更為主節點上使用的版本(主節點上為 4.4.1,從節點上為 4.5.0)。沒有成功,它仍然在主伺服器上構建,但在從伺服器上失敗,產生相同的錯誤。
- 比較兩台機器上的 PHP5 設定檔。沒有明顯差異。
請注意,我不寫測試,我只是接手維護 Jenkins 叢集。環境中一定有一些技巧會造成這種差異,但我無法縮小範圍。使用 --verbose 或 --debug 來運行 phpunit 也沒有幫助。
答案1
幸運的是,我已經找到了解決方案。原來,奴隸沒有安裝網路瀏覽器。aptitude install iceweasel
然後重新啟動 Selenium 伺服器就成功了——現在測試運行順利。
如此簡單,卻又如此令人沮喪。希望如果其他人偶然發現類似的問題,這可以節省他們的寶貴時間。