Como você pode set-up PHP + xdebug + (x) Unidade + Eclipse para trabalhar com pontos de interrupção em testes de unidade?
-
22-08-2019 - |
Pergunta
têm tentado há algum tempo para chegar a este trabalho corretamente, mas sem sorte. Basicamente, eu tenho Eclipse (3.3) com PHP Development Tools (PDT), eo PDT XDebug plugins, bem como o SimpleTest eclipse plugin.
O que eu quero fazer é depurar o código invocado por testes de unidade SimpleTest. SimpleTest pode ver claramente XDebug, porque eu posso gerar relatórios de cobertura de código, mas ele simplesmente não vai parar em pontos de interrupção.
Editar : acrescentar que XDebug e pontos de interrupção funcionam bem em eclipse, não apenas quando invocado por SimpleTest
Alguém configurá-lo com sucesso? Há um monte de docs guff ao redor e pouco na forma de informações úteis.
Obrigado!
Solução
Certifique-se de que você tem a versão XDebug certo para a sua versão do PHP e adicione no início do seu arquivo php.ini:
[xdebug]
zend_extension=full_path_to_your_xdebug.so
xdebug.default_enable=On
xdebug.remote_enable=On
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000
Em seguida, faça uma apachectl graceful
e uma phpinfo
e certifique-se XDebug está presente e ativo. Se for, tudo deve funcionar bem. Eu sei que ele faz para mim.
edit:. eu respondi antes de ler toda a questão
antes de executar o script, você deve definir a variável de ambiente;
export XDEBUG_CONFIG="idekey=session_name"
Pode ser possível fazer isso a partir de php, mas eu não posso testar isso:
putenv('XDEBUG_CONFIG="idekey=session_name"');
Você deve se certificar de que o binário php você está usando tem a extensão XDebug carregado, no meu sistema o apache módulo tem, mas o intérprete CLI padrão não faz, mas eu executar diferentes versões de propósito.
Há alguma documentação boa aqui
Outras dicas
Para ir mais longe na resposta de Kris, Se você gerenciar seus ambientes de produção e desenvolvimento no mesmo servidor, é uma boa idéia para relegar suas configurações XDebug quer a um php include
ou para aqueles de seu virtualhosts
que são dedicados a dev
ou testing
ambientes:
-
A sintaxe para VirtualHosts é
<virtualHost ....> (...) # Xdebug ENV php_flag xdebug.auto_trace on php_flag xdebug.idekey session_name php_flag xdebug.profiler_enable_trigger 1 php_flag xdebug.(...) (...)