在宅基的Netbeans的Laravel黄昏Xdebug

问题描述 投票:2回答:2

在Laravel Homestead,我已经能够使用Xdebug进行单元测试,功能测试,在浏览器中浏览等等。

但是当我尝试使用Xdebug for Dusk(测试/浏览器文件夹中的测试)时它会挂起。

我认为这些问题可能会有所帮助,但我仍然没有让它发挥作用:

我尝试了各种方法,包括:

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中启用了“Stop at First Line”调试选项,Netbeans成功停止在artisan文件中的第一个可执行PHP行。

因此,我认为export XDEBUG_CONFIG="idekey=netbeans-xdebug remote_connect_back=0 remote_host=10.0.2.2"正确设置。

但是在我单击“播放”按钮以允许代码继续之后,Netbeans只是在右下方显示“netbeans-xdebug running”,而控制台只是挂起,光标在此行下闪烁:php artisan dusk tests/Browser/ExampleTest.php

我如何更改Xdebug的使用以使其在黄昏中工作?

laravel xdebug homestead laravel-dusk
2个回答
2
投票

它不起作用,因为Dusk在一个单独的进程中执行实际的PHPUnit测试,所以它不知道XDEBUG_CONFIG

原则上,当你直接执行它们时,黄昏测试仍然有效(phpunit tests/Browser/ExampleTest.php)。 php artisan dusk的主要特征是自定义.env.dusk[.local]文件。

如果您不需要,可以尝试直接调用它们。然后Xdebug的行为应该与所有其他PHPUnit测试的行为相同。


0
投票

在我的回答here中,有一个运行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)

尝试删除第一行中断选项。还可以尝试使用这些选项直接从控制台运行调试。最后检查是否设置了正确的端口以侦听NetBeans和xdebug,因为这可能会导致问题。

© www.soinside.com 2019 - 2024. All rights reserved.