Можно ли отлаживать запросы API на локальном хосте при тестировании с использованием PHPUnit и PhpStorm? - PullRequest
0 голосов
/ 27 июня 2019

У меня есть конфигурация, которая успешно тестирует мой localhost API в PhpStorm с использованием PHPUnit. Также я могу остановиться на точках останова, но только внутри моих классов 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

И добавил cookie в index.php:

header('Cookie: XDEBUG_SESSION=PHPSTORM');

1 Ответ

1 голос
/ 27 июня 2019

Да, вы можете.

Вопрос здесь в том, как вы собираетесь запустить сеанс отладки для этих вызовов API.

Самый обычный способ - добавить xdebug.remote_autostart=1 в php..ini для интерпретатора, выполняющего вызовы, так что сеанс отладки будет запускаться для каждого отдельного вызова PHP, API или нет.

Если вас это не устраивает, вы можете добавить GET-параметр XDEBUG_SESSION_STARTна HTTP-запросы вызовов, но это, очевидно, потребует модификации кода.

...