使用PHPUnit和PhpStorm进行测试时,是否可以在本地主机上调试API请求?

时间:2019-06-27 08:23:31

标签: phpunit phpstorm xdebug

我具有使用PHPUnit在PhpStorm中成功测试我的本地主机API的配置。另外,我可以在断点处停止,但只能在TestCase类内部。

我需要停止在经过测试的逻辑内部设置的断点,但是并不能就此停止。

测试命令:

/usr/bin/php -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 /foo/vendors/composer/phpunit/phpunit/phpunit --configuration /foo/_stuff/phpunit/config-api2.xml --teamcity

我的配置xml:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit
    bootstrap="../../foo/tests/app_test_case.php"
    colors="true"
    stopOnFailure="false"
>
    <testsuites>
        <testsuite name="foo">
            <file>../../foo.php</file>
        </testsuite>

已添加到php.ini:

xdebug.remote_autostart = 1

已添加到请求的路线:

?XDEBUG_SESSION_START=PHPSTORM

并在index.php中添加cookie:

header('Cookie: XDEBUG_SESSION=PHPSTORM');

1 个答案:

答案 0 :(得分:1)

是的,可以。

这里的问题是如何为这些API调用启动调试会话。

最常见的方法是将xdebug.remote_autostart=1添加到php.ini中,以运行调用的解释器,以便针对每个单个PHP调用(无论是否具有API)启动调试会话。

如果您对此不满意,可以将XDEBUG_SESSION_START GET参数添加到调用的HTTP请求中,但这显然需要修改代码。