Как вы можете настроить PHP + xDebug + (x) Unit + Eclipse для работы с точками останова в модульных тестах?

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

Вопрос

Я довольно долго пытался заставить это работать правильно, но безуспешно.В принципе, у меня есть Eclipse (3.3) с инструментами разработки PHP (PDT) и плагином PDT XDebug, а также самым простым плагином eclipse.

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

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

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

Спасибо!

Это было полезно?

Решение

Убедитесь, что у вас установлена правильная версия 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 и a phpinfo и убедитесь, что XDebug присутствует и активен.Если это так, то все должно работать нормально.Я знаю, что для меня это имеет значение.

Редактировать: Я ответил, прежде чем прочитать вопрос целиком.

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

export XDEBUG_CONFIG="idekey=session_name"

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

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

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

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

Другие советы

Чтобы продолжить ответ Криса, если вы управляете своей производственной средой и средой разработки на одном сервере, было бы неплохо перенести настройки 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.(...)
    
      (...)
    
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top