Como você pode set-up PHP + xdebug + (x) Unidade + Eclipse para trabalhar com pontos de interrupção em testes de unidade?

StackOverflow https://stackoverflow.com/questions/880479

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!

Foi útil?

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.(...)
    
      (...)
    
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top