調試不同系統上不一致的 PHPUnit 行為

調試不同系統上不一致的 PHPUnit 行為

這個問題最初是在 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 伺服器就成功了——現在測試運行順利。

如此簡單,卻又如此令人沮喪。希望如果其他人偶然發現類似的問題,這可以節省他們的寶貴時間。

相關內容