Как настроить PHP + xDebug + (x) Unit + Eclipse для работы с точками останова в модульных тестах? - PullRequest
6 голосов
/ 19 мая 2009

Долго пытался заставить это работать правильно, но безуспешно. По сути, у меня есть Eclipse (3.3) с PHP Development Tools (PDT), плагин PDT XDebug и плагин SimpleTest eclipse.

Что я хочу сделать, так это отладочный код, вызываемый модульными тестами SimpleTest. SimpleTest ясно видит XDebug, потому что я могу генерировать отчеты о покрытии кода, но он не останавливается на точках останова.

Редактировать : следует добавить, что XDebug и точки останова отлично работают в затмении, но не при вызове SimpleTest

Кто-нибудь установил это успешно? Вокруг много дурацких документов и мало полезной информации.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 25 мая 2009

Убедитесь, что у вас есть правильная версия XDebug для вашей версии PHP, и добавьте ее в самом начале вашего файла 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

Затем выполните apachectl graceful и phpinfo и убедитесь, что XDebug присутствует и активен. Если это так, все должно работать нормально. Я знаю, что это для меня.

edit: Я ответил до прочтения всего вопроса.

перед запуском скрипта вы должны установить переменную окружения;

export XDEBUG_CONFIG="idekey=session_name"

Это может быть возможно сделать из php, но я не могу проверить это:

putenv('XDEBUG_CONFIG="idekey=session_name"');

Вы должны убедиться, что в используемом вами бинарном файле php загружено расширение XDebug, в моей системе оно есть в модуле apache, а в интерпретаторе CLI по умолчанию его нет, но я специально запускаю разные версии.

Здесь есть хорошая документация здесь

1 голос
/ 30 сентября 2012

Чтобы продолжить ответ Криса, если вы управляете своими средами производства и разработки на одном и том же Сервере, рекомендуется перенести ваши настройки xdebug либо на php include, либо на те из ваших virtualhosts, которые выделены до dev или testing сред:

  • синтаксис для виртуальных хостов

    <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.(...)
    
      (...)
    
...