Phpunit: manuseio de erros fatais
-
27-09-2019 - |
Pergunta
Eu uso phpunit para testes de unidade, mas quando um erro fatal é acionado, o script morre e não tenho saída correta de phpunit.
Eu gostaria que a saída da phpunit permaneça corretamente formado, porque é lido por um plug -in para o Eclipse. Na verdade, o erro fatal interrompe a phpunit e, no eclipse, o plug -in não pode interpretar nada (porque o script phpunit teve um erro, em vez de lidar com isso).
Obrigado
Solução
Você precisa usar os recursos de isolamento do processo do Phpunit - inicie cada conjunto de testes em um novo processo.
phpunit --process-isolation ...
Esta é a única maneira de garantir que os erros fatais não quebrem sua saída de phpunit.
Tempo de execução
O isolamento do processo multiplica o tempo de execução do seu teste, porque Para cada teste único, uma nova instância do PHP é iniciada, o bootstrap é executado etc.
Para alterar essa situação, você pode optar por executar casos de teste completos em um processo separado (@runTestsInSeparateProcesses
), ou apenas os únicos que são conhecidos por algumas vezes (às vezes (@runInSeparateProcess
).
Outras dicas
set_error_handler () não o ajudará lá. Você pode pegar erros fatais usando Register_shutdown_function ()