【发布时间】:2017-07-06 05:20:54
【问题描述】:
我正在使用 Codeception 运行一些单元测试。具体来说,我正在测试一个 API,其中一个测试步骤失败了。我知道它是哪一步,但不知道为什么,所以我想单步执行我的代码,因为它正在由单元测试执行。
我已经尝试设置“在 php 脚本中的第一行中断”,我已经调试了测试本身,我已经尝试写入控制台,但还有很多需要缩小的范围。有没有办法像我正常调试一样进入我的代码?
【问题讨论】:
-
我对codeception不太熟悉,但它是模拟请求?当我使用其他东西调试我的 API 时,通常可以将
?XDEBUG_SESSION_START=PHPSTORM添加到查询字符串中,您可以尝试将其放入测试请求中。 -
从我的单元测试中调用的方法是
sendPOST(...),我可以向其中添加参数。我将添加该参数,看看会发生什么。如果没有,我可以在 Postman 中测试同样的东西,看看我是怎么做的。 -
这就像一个魅力。请添加为答案,以便我将您标记为正确。
-
嗯 ...
xdebug.remote_autostart = 1in php.ini 和 xdebug 将尝试调试每个请求(因为这个并不理想,但如果您不想编辑代码则很好)。如果编辑代码没问题——只需放置xdebug_break();——程序断点。 IDE 方面的唯一要求 - 1) 激活“电话句柄”图标(以便 IDE 侦听传入的调试请求)和 2) 如果您尝试一次调试多个请求(例如子请求),请确保您允许IDE 中超过 1 个(默认情况下)同时调试会话。 -
我想知道是否可以设置程序断点。我是一名转换为 php 的 C# 开发人员,我认为 C# 理所当然的所有东西在 php 中通常不可用......很高兴这个不是。
标签: php unit-testing debugging phpstorm codeception