2016-07-15 09:42 阅读 65

Drupal 8:使用XDebug和PHPStorm调试测试 - 逐步完成

I'm trying to debug my Drupal 8 tests with XDebug, but if I run them with XDebug switched on, I cannot step into the test. I execute the following command:

vendor/bin/phpunit -c core modules/permissions_by_term/tests/src/Kernel/SelectTermTest.php

PHPUnit reports me here:

"Can't find a source position. Server name 'localhost' doesn't exist."

My settings in the PHP.ini file are looking as follows:

xdebug.remote_enable=true xdebug.profiler_enable=0 xdebug.idekey=PHPSTORM xdebug.max_nesting_level=256 xdebug.remote_autostart=true

Can anybody share here some experience?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    douqianke7467 douqianke7467 2016-08-05 08:46

    I got it to run. I had to do some more settings.

    First, create a new PHP Remote Debug under the Run Configurations (The ZeroConfiguration didn't work for me). Define a Server with the name you want (here "TestServer") and enter PHPSTORM as Ide Key.

    Also see the Jetbrains documentation:

    Enable the option "Break at first line in PHP scripts" in under the RUN menu .

    It can be possible that you need to override the file mapping. (In my case PHPStorm is not able to detect file mapping automatically) (See: It's is within same dialog where the server was created.

    Start the Remote Debug Session with clicking on the corresponding icon.

    Then you should be able to run PHPUnit with this command:

    PHP_IDE_CONFIG="serverName=TestServer"  XDEBUG_CONFIG="idekey=PHPSTORM" vendor/phpunit/phpunit/phpunit -c YOUPHPUNITXMLCONFIG

    Set the PHP_IDE_CONFIG corresponding to your settings.

    Set breakpoints where you want to stop.

    I hope I could help you.


    点赞 评论 复制链接分享