Ao executar testes de aceitação usando o PhantomJS e o Codeception (em uma instalação do Laravel), recebo um erro rotineiramente:
Falha ao conectar-se à porta 127.0.0.1 4444: Conexão recusada
Especificamente durante a execução de testes:
Nesse ponto, recebo a exceção (acima) na mesma hora em que o processo do PhantomJS é morto.
Parece que as solicitações de curl estão sendo recusadas, provavelmente porque o processo do PhantomJS é morto.
Sem o PhantomJS em execução se eu emitir uma solicitação HEAD com o curl, recebo:
curl -I http://127.0.0.1:4444
curl: (7) Failed to connect to 127.0.0.1 port 4444: Connection refused
Com o PhantomJS executando via phantomjs --webdriver=4444
curl -I http://127.0.0.1:4444
HTTP/1.1 404 Not Found
Cache: no-cache
Content-Length: 360
Content-Type: text/plain
Às vezes, meus testes de aceitação são bem-sucedidos, outras vezes (em geral, 99% +) recebo o erro descrito acima.
Meu ambiente é provisionado pela Ansible, executar testes no passado não foi um problema até as últimas 48 horas. Reprovisionar meu ambiente não ajuda.
Estou correto em assumir que algo está matando inadvertidamente o processo do PhantomJS que, então, leva ao erro descrito acima, quando o Codeception tenta emitir uma solicitação de curl?Eu pensei que isso pode ter sido um problema com portas abertas, etc, mas depois de alguns dias de depuração / pesquisa, não consigo determinar a causa exata.
Estou a correr:
Qualquer sugestão apreciada.