【问题标题】:Why can't I step through PHPunit tests with XDebug when I run them from the command line?当我从命令行运行 PHPunit 测试时,为什么不能使用 XDebug 单步执行它们?
【发布时间】:2016-05-04 19:40:12
【问题描述】:

PHP、XDebug 和我的 IDE (PhpStorm) 都已正确配置。 PhpStorm 正在侦听,它正在启动调试会话,但它从未在我的单元测试类中遇到断点,我无法逐步完成它。整个测试运行。

有人有什么想法吗?

【问题讨论】:

  • 您是否还有其他可以运行的脚本并且它们会进入断点?您是否尝试过“在没有指定路径映射时在第一行强制中断”(也许有映射的东西)?
  • 是的,我可以从 CLI 运行常规脚本,它会命中我定义的任何断点。我还可以选择“未指定路径映射时在第一行强制中断”,但仍然没有骰子。

标签: php phpunit xdebug


【解决方案1】:

我可以使用 XDebug 毫无问题地进入 PHPUnit 测试。但是,我确实注意到它有时似乎会跳过某些语句(例如对函数中的变量进行简单赋值而没有其他任何内容),因此请分散一些断点。

确保您已正确设置路径映射,并映射了正确版本的库。

如果您从命令行使用 XDebug,则必须设置某些环境变量 - 请参阅 herehere

在我的情况下,需要在远程框中设置以下环境变量并从远程框运行。 10.0.2.2 适用于 Virtualbox 虚拟机——基本上你需要指向你的本地机器。

export XDEBUG_CONFIG="idekey=PHPSTORM remote_host=10.0.2.2 remote_port=9000"
export PHP_IDE_CONFIG="serverName=[yourservernamehere]"

【讨论】:

  • 虽然我很久以前就解决了这个问题,但我没有用解决方案回答我自己的问题。由于您在回答中提到了解决方案,因此我接受了它作为答案。仅供参考,解决方案正在运行 export PHP_IDE_CONFIG="serverName=[yourservernamehere]"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 2010-10-21
  • 1970-01-01
  • 2019-05-05
  • 2020-10-30
  • 2021-07-02
  • 1970-01-01
相关资源
最近更新 更多