Совместное использование netbeans, xdebug, symfony и phpunit - PullRequest
4 голосов
/ 29 июня 2010

Я установил xdebug на свой Apache, и если я определяю точку останова в Netbeans, выполнение прерывается нормально. Но если я выполню тесты с symfony phpunit:test-all, выполнение не будет прервано в заданной точке останова.

Есть идеи? Cowabunga!

Ответы [ 3 ]

9 голосов
/ 17 августа 2010

Для отладки сценария командной строки сначала экспортируйте переменную XDEBUG_CONFIG, например:

export XDEBUG_CONFIG="idekey=netbeans-xdebug" (Unix / Linux / OS X)

set XDEBUG_CONFIG=idekey=netbeans-xdebug (Windows)

(Примечание: я не проверял команду Windows. Возможно, вам придется экранировать символ =, или команда может выглядеть немного иначе. Если это так, я надеюсь, что кто-то придет и исправит меня в комментарии .)

Объяснение: Когда вы открываете сеанс отладки для скрипта, который запускается через Apache, NetBeans откроет ваш браузер по URL-адресу, который заканчивается на "XDEBUG_SESSION_START=netbeans-xdebug". Когда это происходит, Xdebug знает, что нужно перехватить этот аргумент и дать вашему браузеру файл cookie с этой информацией о сеансе отладки.

Приведенная выше команда эквивалентна установке cookie в среде командной строки.

0 голосов
/ 29 июня 2010

Я не использую netbeans, но я не думаю, что netbeans изменяет файл, в который вы помещаете точки останова, и я не думаю, что symfony может прочитать вашу конфигурацию netbean, чтобы выяснить, где сломать.

Также, если вы выполняете тестирование всей задачи внутри netbeans и ожидаете, что тестовые файлы будут повреждены, я не думаю, что это сработает, так как задача разветвляет php-процессы, которые, я считаю, и эти процессы не будут читаться netbeans.

Все гипотезы конечно.

0 голосов
/ 29 июня 2010

Когда вы говорите, что определяете точку останова в Netbeans, и она ломается нормально, вы говорите о запуске модульных тестов из Netbeans или запуске веб-приложения, которое вызывает точки останова в Netbeans?

В любом случае, я думаю, что в двух сценариях используются разные файлы PHP.INI. Получите один из ваших модульных тестов, чтобы выгрузить информацию о конфигурации, и вы увидите, довольно быстро, я полагаю. Найдите PHP.INI, который используется в командной строке, и убедитесь, что XDebug настроен для этого сценария.

Надеюсь, это имеет смысл. На данный момент я полностью свободен от кофе.

...