Xdebug из Laravel Dusk в Netbeans на усадьбе - PullRequest
0 голосов
/ 15 февраля 2019

В Laravel Homestead я смог использовать Xdebug для юнит-тестов, тестов функций, поиска в браузере и т. Д.

Но он зависает, когда я пытаюсь использовать Xdebug для Dusk (тесты вtests / Browser folder).

Я думал, что эти вопросы могут помочь, но я до сих пор не получил его работу:

Я пробовал различные подходы, в том числе:

export XDEBUG_CONFIG="idekey=netbeans-xdebug remote_connect_back=0 remote_host=10.0.2.2"
php artisan dusk

и

export XDEBUG_CONFIG="idekey=netbeans-xdebug remote_host=10.0.2.2"
php -dxdebug.remote_autostart=on -dxdebug.remote_connect_back=off -dxdebug.remote_host=10.0.2.2 artisan dusk

и др.

Я включил опцию отладки «Остановить на первой строке» в Netbeans, и Netbeans успешно останавливается на первом исполняемом файлеСтрока PHP в файле artisan.

Поэтому я думаю, что export XDEBUG_CONFIG="idekey=netbeans-xdebug remote_connect_back=0 remote_host=10.0.2.2" настроен правильно.

Но после того, как я нажму кнопку "play", чтобы позволить коду продолжить, Netbeans простоговорит "netbeans-xdebug running" в правом нижнем углу, в то время как консоль просто висит с курсором flashing под этой строкой: php artisan dusk tests/Browser/ExampleTest.php

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

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Это не работает, потому что Dusk выполняет настоящий тест PHPUnit в отдельном процессе, поэтому он не знает о XDEBUG_CONFIG.

В принципе, тесты Dusk по-прежнему работают, когда вы выполняете их напрямую (phpunit tests/Browser/ExampleTest.php).Основная функция php artisan dusk - это пользовательские .env.dusk[.local] файлы.

Если вам это не нужно, вы можете попробовать вызвать их напрямую.Тогда Xdebug должен вести себя так же, как и во всех других ваших тестах PHPUnit.

0 голосов
/ 15 февраля 2019

Как и в моем ответе здесь , есть опция запуска php -dxdebug.remote_enable=1 -dxdebug.remote_host=10.0.2.2 -dxdebug.remote_port=9000 -dxdebug.remote_handler=dbgp artisan my:command

Вы также можете добавить эти параметры в xdebug.ini следующим образом:

zend_extension_ts = "./php/ext/php_xdebug<-version-number>.dll"
xdebug.remote_enable=1
xdebug.remote_host=10.0.2.2
; Port number must match debugger port number in NetBeans IDE Tools > Options > PHP
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

xdebug.idekey=netbeans-xdebug (although I think it should work without this too)

Попробуйте удалить разрыв в первой строке.Также попробуйте запустить debug непосредственно из консоли с этими параметрами.И наконец, убедитесь, что правильный порт настроен на прослушивание в NetBeans и xdebug, поскольку это также может вызвать проблемы.

...