Depuración del comportamiento inconsistente de PHPUnit en diferentes sistemas

Depuración del comportamiento inconsistente de PHPUnit en diferentes sistemas

Esta pregunta se hizo originalmente en Stackoverflow, pero luego decidí que podría ajustarse mejor a Serverfault, así que la moví aquí.

Estoy intentando reorganizar mis proyectos de Jenkins moviendo algunos de ellos a un nodo esclavo. Mi problema es que el mismo proyecto funciona bien cuando se ejecuta en el maestro y falla con un error críptico en el esclavo al que intento moverlo. El problema no está en Jenkins, ya que obtengo resultados idénticos al ejecutar esto manualmente en un shell.

El error que me sale en el esclavo es:

PHPUnit_Extensions_Selenium2TestCase_Exception: actualmente no hay ninguna sesión activa para ejecutar el comando 'url'. Probablemente estés intentando configurar alguna opción en setUp() con un error
etc. nombre del configurador. Puedes considerar usar setUpPage() en su lugar.

Normalmente, eso indicaría que el código es correcto, pero exactamente el mismo proyecto no produce errores en el nodo maestro y las pruebas se ejecutan correctamente.

Lo que he probado hasta ahora:

  • Cambie la versión de PHPUnit en el nodo esclavo a la versión utilizada en el maestro (es 4.4.1 en el maestro, 4.5.0 en el esclavo). Sin éxito, todavía se basa en el maestro y falla en el esclavo, lo que produce el mismo error.
  • Diferenciar archivos de configuración PHP5 de ambas máquinas. No se evidencian diferencias.

Tenga en cuenta que yo no escribo las pruebas, simplemente me hago cargo del mantenimiento del clúster de Jenkins. Debe haber algún truco en el entorno que marque la diferencia pero no puedo concretarlo. Ejecutar phpunit con --verbose o --debug tampoco ayuda.

Respuesta1

Por suerte he conseguido encontrar una solución. Resultó que el esclavo no tenía ningún navegador de Internet instalado. aptitude install iceweasely luego reiniciar el servidor Selenium funcionó: ahora las pruebas se ejecutan sin problemas.

Tan simple, pero tan frustrante. Con suerte, esto le ahorrará a otra persona su valioso tiempo si se topa con un problema similar.

información relacionada