Как мне войти в свой код (не тестовый код) с помощью Codeception в PhpStorm?

Я запускаю несколько модульных тестов с помощью Codeception. В частности, я тестирую API, и один из этапов тестирования не работает. Я знаю, что это за шаг, но не могу понять, почему, поэтому я хочу войти в свой код, поскольку он выполняется модульным тестом.

Я пробовал установить «Прерывание на первой строке в сценариях php», я отладил сам тест, я пробовал писать в консоль, но есть много чего сузить. Есть ли способ войти в мой код, как будто я обычно отлаживаю?


person Brandon    schedule 16.02.2017    source источник
comment
Я не очень знаком с кодированием, но он имитирует запросы? Когда я отлаживаю свой API с помощью чего-то еще, обычно получается добавить ?XDEBUG_SESSION_START=PHPSTORM в строку запроса, вы можете попробовать поместить это в свои запросы из тестов.   -  person mickadoo    schedule 17.02.2017
comment
Из моего модульного теста вызывается метод sendPOST(...), к которому я могу добавлять параметры. Я добавлю этот параметр и посмотрю, что произойдет. Если нет, то я могу протестировать то же самое в Postman и посмотреть, как у меня дела.   -  person Brandon    schedule 17.02.2017
comment
Это сработало как шарм. Пожалуйста, добавьте в качестве ответа, чтобы я мог отметить, что вы верны.   -  person Brandon    schedule 17.02.2017
comment
Что ж ... xdebug.remote_autostart = 1 в php.ini и xdebug будет пытаться отлаживать каждый отдельный запрос (не идеально из-за этого, но хорошо в случае, если вы не хотите редактировать свой код). Если с редактированием кода все в порядке - просто поместите xdebug_break(); - программная точка останова. Единственные требования со стороны IDE - 1) активен значок дескриптора телефона (так что IDE прослушивает входящие запросы отладки) и 2) если вы пытаетесь отлаживать больше запросов за раз (например, подзапросы), тогда убедитесь, что вы разрешаете больше, чем 1 (по умолчанию) сеанс одновременной отладки в IDE.   -  person LazyOne    schedule 17.02.2017
comment
Мне было интересно, можно ли установить программную точку останова. Я разработчик C #, преобразованный в php, и все, что я считаю само собой разумеющимся с C #, обычно недоступно в php ... Рад, что этого нет.   -  person Brandon    schedule 17.02.2017


Ответы (1)


При отладке API, когда запрос поступает из внешнего источника (не запускает процесс из PhpStorm), вы всегда можете добавить ?XDEBUG_SESSION_START=PHPSTORM в строку запроса, которая должна запустить отладчик.

Если это не сработает, настройте его на запуск с первой строки скрипта и пошаговое выполнение. Если это не работает со строкой запроса, чаще всего это связано с тем, что у меня не настроены правильные сопоставления путей, которые вы можете сделать в Настройках> Серверы.

Для всех, кто смотрит на это, как @Brandon упомянул в комментариях, первое, в чем вы должны быть уверены, это то, что у вас установлен и настроен xdebug.

person mickadoo    schedule 17.02.2017
comment
Еще одно замечание - убедитесь, что у вас также установлен и настроен XDebug. - person Brandon; 17.02.2017
comment
спасибо, добавил это для всех, у кого такая же проблема. - person mickadoo; 17.02.2017