다양한 시스템에서 일관되지 않은 PHPUnit 동작 디버깅

다양한 시스템에서 일관되지 않은 PHPUnit 동작 디버깅

이 질문은 원래 Stackoverflow에서 요청되었지만 Serverfault에 더 적합하다고 판단되어 여기로 옮겼습니다.

Jenkins 프로젝트 중 일부를 슬레이브 노드로 이동하여 재정렬하려고 합니다. 내 문제는 동일한 프로젝트가 마스터에서 실행될 때 잘 실행되고 이를 이동하려고 하는 슬레이브에서 알 수 없는 오류로 인해 실패한다는 것입니다. 문제는 Jenkins 자체에 있는 것이 아닙니다. 쉘에서 수동으로 실행하면 동일한 결과를 얻을 수 있기 때문입니다.

슬레이브에서 발생하는 오류는 다음과 같습니다.

PHPUnit_Extensions_Selenium2TestCase_Exception: 현재 'url' 명령을 실행할 활성 세션이 없습니다. 아마도 incorr을 사용하여 setUp()에서 일부 옵션을 설정하려고 할 것입니다.
세터 이름 등. 대신 setUpPage() 사용을 고려할 수 있습니다.

이는 일반적으로 코드가 ne이지만 정확히 동일한 프로젝트가 마스터 노드에서 오류를 생성하지 않고 테스트가 성공적으로 실행되었음을 나타냅니다.

내가 지금까지 시도한 것 :

  • 슬레이브 노드의 PHPUnit 버전을 마스터에서 사용되는 버전으로 변경합니다(마스터에서는 4.4.1, 슬레이브에서는 4.5.0). 성공하지 못했습니다. 여전히 마스터에서 빌드되고 슬레이브에서 실패하여 동일한 오류가 발생합니다.
  • 두 시스템의 PHP5 구성 파일을 비교해보세요. 증거에는 차이가 없습니다.

저는 테스트를 작성하지 않았으며 Jenkins 클러스터 유지 관리만 맡았습니다. 환경에 차이를 만드는 어떤 트릭이 있을 것 같지만 그 범위를 좁힐 수는 없습니다. --verbose 또는 --debug를 사용하여 phpunit을 실행해도 도움이 되지 않습니다.

답변1

다행히 해결책을 찾았습니다. 알고 보니 노예에게는 인터넷 브라우저가 설치되어 있지 않았습니다. aptitude install iceweasel그런 다음 Selenium 서버를 다시 시작하면 문제가 해결되었습니다. 이제 테스트가 원활하게 실행됩니다.

너무 간단하면서도 너무 당황스럽습니다. 비슷한 문제가 발생할 경우 다른 사람의 소중한 시간을 절약할 수 있기를 바랍니다.

관련 정보