
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 iceweasel
e 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.