Depurando comportamento inconsistente do PHPUnit em sistemas diferentes

Depurando comportamento inconsistente do PHPUnit em sistemas diferentes

Esta pergunta foi feita originalmente no Stackoverflow, mas decidi que poderia se adequar melhor ao Serverfault, então mudei-a para cá.

Estou tentando reorganizar meus projetos Jenkins movendo alguns deles para um nó escravo. Meu problema é que o mesmo projeto funciona bem quando executado no mestre e falha com um erro enigmático no escravo para onde estou tentando movê-lo. O problema não é com o próprio Jenkins, pois obtenho resultados idênticos ao executá-lo manualmente em um shell.

O erro que recebo no escravo é:

PHPUnit_Extensions_Selenium2TestCase_Exception: Atualmente não há sessão ativa para executar o comando 'url'. Você provavelmente está tentando definir alguma opção em setUp() com erro
nome do setter. Você pode considerar usar setUpPage().

Isso normalmente indicaria que o código é bom, mas exatamente o mesmo projeto não produz erros no nó mestre e os testes são executados com êxito.

O que eu tentei até agora:

  • Altere a versão do PHPUnit no nó escravo para a versão usada no mestre (é 4.4.1 no mestre, 4.5.0 no escravo). Sem sucesso, ele ainda baseia-se no mestre e falha no escravo, gerando o mesmo erro.
  • Diferencie os arquivos de configuração do PHP5 de ambas as máquinas. Nenhuma diferença está em evidência.

Observe que eu não escrevo os testes, apenas assumi a manutenção do cluster Jenkins. Deve haver algum truque no ambiente que faça a diferença, mas não consigo restringi-lo. Executar o phpunit com --verbose ou --debug também não ajuda.

Responder1

Felizmente consegui encontrar uma solução. Acontece que o escravo não tinha nenhum navegador de internet instalado. aptitude install iceweasele então reiniciar o servidor Selenium resolveu - agora os testes funcionam sem problemas.

Tão simples, mas tão frustrante. Esperamos que isso economize o precioso tempo de outra pessoa caso ela se depare com um problema semelhante.

informação relacionada