Отладка несогласованного поведения PHPUnit на разных системах

Отладка несогласованного поведения PHPUnit на разных системах

Первоначально этот вопрос был задан на Stackoverflow, но потом я решил, что он больше подойдет для Serverfault, поэтому перенес его сюда.

Я пытаюсь переупорядочить свои проекты Jenkins, переместив некоторые из них на подчиненный узел. Моя проблема в том, что тот же самый проект работает нормально при запуске на главном узле и падает с криптической ошибкой на подчиненном узле, куда я пытаюсь его переместить. Проблема не в самом Jenkins, так как я получаю идентичные результаты, запуская его вручную в оболочке.

Ошибка, которую я получаю на подчиненном устройстве:

PHPUnit_Extensions_Selenium2TestCase_Exception: В настоящее время нет активного сеанса для выполнения команды 'url'. Вероятно, вы пытаетесь задать некую опцию в setUp() с непр
ect имя сеттера. Вы можете рассмотреть возможность использования setUpPage() вместо этого.

Обычно это означает, что код верен, но тот же самый проект не выдает ошибок на главном узле и тесты выполняются успешно.

Что я уже попробовал:

  • Измените версию PHPUnit на подчиненном узле на версию, используемую на главном (это 4.4.1 на главном узле, 4.5.0 на подчиненном). Не удалось, сборка по-прежнему выполняется на главном узле и завершается сбоем на подчиненном узле, выдавая ту же ошибку.
  • Файлы конфигурации PHP5 Diff с обеих машин. Различий не обнаружено.

Обратите внимание, что я не пишу тесты, я просто взял на себя поддержку кластера Jenkins. Должен быть какой-то трюк в среде, который делает разницу, но я не могу сузить его. Запуск phpunit с --verbose или --debug тоже не помогает.

решение1

К счастью, мне удалось найти решение. Оказалось, что на подчиненном устройстве не был установлен интернет-браузер. aptitude install iceweaselПосле этого перезапуск сервера Selenium помог — теперь тесты проходят гладко.

Так просто, но так раздражающе. Надеюсь, это сэкономит кому-то еще драгоценное время, если они столкнутся с похожей проблемой.

Связанный контент