異なるシステムでの PHPUnit の一貫性のない動作のデバッグ

異なるシステムでの PHPUnit の一貫性のない動作のデバッグ

この質問は元々 Stackoverflow で尋ねられたものですが、Serverfault の方が適していると判断したため、こちらに移動しました。

Jenkins プロジェクトの一部をスレーブ ノードに移動して再配置しようとしています。問題は、同じプロジェクトがマスターで実行すると正常に実行されるのに、移動先のスレーブでは不可解なエラーで失敗することです。シェルで手動で実行すると、同じ結果が得られるため、問題は Jenkins 自体にはありません。

スレーブで発生するエラーは次のとおりです:

PHPUnit_Extensions_Selenium2TestCase_Exception: 現在、'url' コマンドを実行するためのアクティブなセッションがありません。おそらく、setUp() で間違ったオプションを設定しようとしているのでしょう。
ect セッター名。代わりに setUpPage() を使用することを検討してください。

これは通常、コードが異なっていても、まったく同じプロジェクトでマスター ノードにエラーが発生せず、テストが正常に実行されることを示します。

これまで試したこと:

  • スレーブ ノードの PHPUnit バージョンをマスターで使用されているバージョンに変更します (マスターでは 4.4.1、スレーブでは 4.5.0)。成功せず、マスターでは引き続きビルドされ、スレーブでは失敗し、同じエラーが発生します。
  • 両方のマシンの PHP5 構成ファイルを比較します。違いは見当たりません。

私がテストを書いたわけではなく、Jenkins クラスターの保守を引き継いだだけであることに注意してください。違いを生む何らかのトリックが環境に存在しているはずですが、それを絞り込むことはできません。--verbose または --debug を指定して phpunit を実行しても役に立ちません。

答え1

幸運にも、解決策を見つけることができました。スレーブにインターネット ブラウザーがインストールされていなかったことが判明しました。aptitude install iceweaselその後、Selenium サーバーを再起動すると問題が解決し、テストがスムーズに実行されるようになりました。

とてもシンプルですが、とてもイライラします。 同様の問題に遭遇した他の人の貴重な時間を節約できることを願っています。

関連情報