PHpUnit с xdebug Разрывает BaseTestRunner вместо реального теста - PullRequest
0 голосов
/ 18 октября 2019

У меня настроена удаленная отладка Xdebug со следующей конфигурацией:

Я установил точку останова в своем тесте phpunit:

<?php declare (strict_types = 1);

namespace Tests\Api;

class MyControllerTest extends ApiTestCase
{
    public function myTest()
    {
        // Breakpoint goes here
        //Rest Of code
    }
}

Затем я установил Xdebug для прослушивания xdebug. На удаленном сервере (бродячая виртуальная машина) я выполняю следующие команды:

export XDEBUG_CONFIG="idekey=VSCODE"
phpunit ./tests/app/MyControllerTest.php

Но мой VSCode (ufing vscodium fork) ломается при vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php Вместо фактического модульного теста из-за отражения, как видно из xdebuglog:

[98] Log opened at 2019-10-18 08:07:04
[98] I: Connecting to configured address/port: 10.0.2.2:9000.
[98] I: Connected to client. :-)
[98] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///var/www/html/vendor/phpunit/phpunit/phpunit" language="PHP" xdebug:language_version="7.2.20" protocol_version="1.0" appid="98" idekey="VSCODE"><engine version="2.7.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2019 by Derick Rethans]]></copyright></init>
[98]
[98] <- breakpoint_list -i 1
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="1"></response>
[98]
[98] <- breakpoint_list -i 2
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="2"></response>
[98]
[98] <- breakpoint_list -i 3
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="3"></response>
[98]
[98] <- breakpoint_list -i 4
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="4"></response>
[98]
[98] <- breakpoint_list -i 5
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="5"></response>
[98]
[98] <- breakpoint_list -i 6
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="6"></response>
[98]
[98] <- breakpoint_set -i 7 -t line -f file:///var/www/html/app/Http/Middleware/AuthorizeGiaolaClient.php -n 26
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="7" id="980001"></response>
[98]
[98] <- breakpoint_set -i 8 -t line -f file:///var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php -n 116
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="8" id="980002"></response>
[98]
[98] <- breakpoint_set -i 9 -t line -f file:///var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php -n 125
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="9" id="980003"></response>
[98]
[98] <- breakpoint_set -i 10 -t line -f file:///var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php -n 127
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="10" id="980004"></response>
[98]
[98] <- breakpoint_set -i 11 -t line -f file:///var/www/html/public/index.php -n 10
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="11" id="980005"></response>
[98]
[98] <- breakpoint_set -i 12 -t line -f file:///var/www/html/app/Communications/Infobip/MessageInterface.php -n 8
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="12" id="980006"></response>
[98]
[98] <- breakpoint_set -i 13 -t line -f file:///var/www/html/app/Controllers/Mobile/V4/ReservationController.php -n 18
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="13" id="980007"></response>
[98]
[98] <- breakpoint_set -i 14 -t line -f file:///var/www/html/tests/Api/Giaola/ReservationControllerTest.php -n 288
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="14" id="980008"></response>
[98]
[98] <- breakpoint_set -i 15 -t line -f file:///var/www/html/tests/Api/Giaola/ReservationControllerTest.php -n 369
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="15" id="980009"></response>
[98]
[98] <- breakpoint_list -i 16
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="16"><breakpoint type="line" filename="file:///var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php" lineno="127" state="enabled" hit_count="0" hit_value="0" id="980004"></breakpoint><breakpoint type="line" filename="file:///var/www/html/public/index.php" lineno="10" state="enabled" hit_count="0" hit_value="0" id="980005"></breakpoint><breakpoint type="line" filename="file:///var/www/html/app/Communications/Infobip/MessageInterface.php" lineno="8" state="enabled" hit_count="0" hit_value="0" id="980006"></breakpoint><breakpoint type="line" filename="file:///var/www/html/app/Controllers/Mobile/V4/ReservationController.php" lineno="18" state="enabled" hit_count="0" hit_value="0" id="980007"></breakpoint><breakpoint type="line" filename="file:///var/www/html/app/Http/Middleware/AuthorizeGiaolaClient.php" lineno="26" state="enabled" hit_count="0" hit_value="0" id="980001"></breakpoint><breakpoint type="line" filename="file:///var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php" lineno="116" state="enabled" hit_count="0" hit_value="0" id="980002"></breakpoint><breakpoint type="line" filename="file:///var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php" lineno="125" state="enabled" hit_count="0" hit_value="0" id="980003"></breakpoint><breakpoint type="line" filename="file:///var/www/html/tests/Api/Giaola/ReservationControllerTest.php" lineno="288" state="enabled" hit_count="0" hit_value="0" id="980008"></breakpoint><breakpoint type="line" filename="file:///var/www/html/tests/Api/Giaola/ReservationControllerTest.php" lineno="369" state="enabled" hit_count="0" hit_value="0" id="980009"></breakpoint></response>
[98]
[98] <- breakpoint_list -i 17
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="17"><breakpoint type="line" filename="file:///var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php" lineno="127" state="enabled" hit_count="0" hit_value="0" id="980004"></breakpoint><breakpoint type="line" filename="file:///var/www/html/public/index.php" lineno="10" state="enabled" hit_count="0" hit_value="0" id="980005"></breakpoint><breakpoint type="line" filename="file:///var/www/html/app/Communications/Infobip/MessageInterface.php" lineno="8" state="enabled" hit_count="0" hit_value="0" id="980006"></breakpoint><breakpoint type="line" filename="file:///var/www/html/app/Controllers/Mobile/V4/ReservationController.php" lineno="18" state="enabled" hit_count="0" hit_value="0" id="980007"></breakpoint><breakpoint type="line" filename="file:///var/www/html/app/Http/Middleware/AuthorizeGiaolaClient.php" lineno="26" state="enabled" hit_count="0" hit_value="0" id="980001"></breakpoint><breakpoint type="line" filename="file:///var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php" lineno="116" state="enabled" hit_count="0" hit_value="0" id="980002"></breakpoint><breakpoint type="line" filename="file:///var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php" lineno="125" state="enabled" hit_count="0" hit_value="0" id="980003"></breakpoint><breakpoint type="line" filename="file:///var/www/html/tests/Api/Giaola/ReservationControllerTest.php" lineno="288" state="enabled" hit_count="0" hit_value="0" id="980008"></breakpoint><breakpoint type="line" filename="file:///var/www/html/tests/Api/Giaola/ReservationControllerTest.php" lineno="369" state="enabled" hit_count="0" hit_value="0" id="980009"></breakpoint></response>
[98]
[98] <- breakpoint_set -i 18 -t exception -x *
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="18" id="980010"></response>
[98]
[98] <- run -i 19
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="run" transaction_id="19" status="break" reason="ok"><xdebug:message filename="file:///var/www/html/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php" lineno="114" exception="ReflectionException"><![CDATA[Method suite does not exist]]></xdebug:message></response>
[98]
[98] <- stack_get -i 20
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="stack_get" transaction_id="20"><stack where="ReflectionClass-&gt;getMethod" level="0" type="file" filename="file:///var/www/html/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php" lineno="114"></stack><stack where="PHPUnit\TextUI\TestRunner-&gt;getTest" level="1" type="file" filename="file:///var/www/html/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php" lineno="114"></stack><stack where="PHPUnit\TextUI\Command-&gt;run" level="2" type="file" filename="file:///var/www/html/vendor/phpunit/phpunit/src/TextUI/Command.php" lineno="183"></stack><stack where="PHPUnit\TextUI\Command::main" level="3" type="file" filename="file:///var/www/html/vendor/phpunit/phpunit/src/TextUI/Command.php" lineno="162"></stack><stack where="{main}" level="4" type="file" filename="file:///var/www/html/vendor/phpunit/phpunit/phpunit" lineno="61"></stack></response>
[98]
[98] <- run -i 21
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="run" transaction_id="21" status="break" reason="ok"><xdebug:message filename="file:///var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php" lineno="255" exception="Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException"><![CDATA[]]></xdebug:message></response>
[98]
[98] <- run -i 22
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="run" transaction_id="22" status="break" reason="ok"><xdebug:message filename="file:///var/www/html/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php" lineno="137" exception="InvalidArgumentException"><![CDATA[View [405] not found.]]></xdebug:message></response>
[98]
[98] <- run -i 23
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="run" transaction_id="23" status="break" reason="ok"><xdebug:message filename="file:///var/www/html/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php" lineno="112" exception="PHPUnit\Framework\ExpectationFailedException"><![CDATA[Expected status code 404 but received 405.
Failed asserting that false is true.]]></xdebug:message></response>
[98]
[98] <- run -i 24
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="run" transaction_id="24" status="break" reason="ok"><xdebug:message filename="file:///var/www/html/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php" lineno="112" exception="PHPUnit\Framework\ExpectationFailedException"><![CDATA[Expected status code 404 but received 405.
Failed asserting that false is true.]]></xdebug:message></response>
[98]
[98] <- run -i 25
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="run" transaction_id="25" status="break" reason="ok"><xdebug:message filename="file:///var/www/html/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php" lineno="112" exception="PHPUnit\Framework\ExpectationFailedException"><![CDATA[Expected status code 404 but received 405.
Failed asserting that false is true.]]></xdebug:message></response>
[98]
[98] <- run -i 26
[98] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="run" transaction_id="26" status="stopping" reason="ok"></response>
[98]
[98] <- run -i 27
[98] Log closed at 2019-10-18 08:07:34
[98]

Итак, как я могу сделать xgebug сигнатурой моей тестовой функции?

1 Ответ

1 голос
/ 22 октября 2019

У меня была такая же проблема. Проверьте в левом нижнем углу, в разделе «Точки останова» боковой панели отладки, если «Все» отмечено. Снимите флажок.

На следующем снимке экрана показано, как снять флажок: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...