4

我安装了 PHPUnit 和 xdebug,在我的 CLI 的 php.ini 文件中,我得到了:

display_errors = On
xdebug.default_enable = 1

我已经验证了当我使用交互式控制台创建错误时会打印 xdebug 回溯,但是当运行 phpunit 时发生错误时,没有回溯?

回溯发生了什么?phpunit 对我隐瞒了吗?我缺少一些设置吗?

谢谢!

4

2 回答 2

8

回溯发生了什么?phpunit 对我隐瞒了吗?

是的,PHPUnit 禁用 xdebug,至少这些跟踪(通过调用xdebug_disable()Docs)。

我缺少一些设置吗?

您可以添加一个引导文件,在其中再次使用xdebug_enable()Docs启用它。这确实有效,但也会向您显示任何抛出的异常(捕获或未捕获)的堆栈跟踪。

另见:Issue #221 PHPUnit disables xdebug,建议使用另一个 ini 设置:

sebastianbergmann:问题在于xdebug.show_exception_trace配置设置。当设置为 时1,这将“在引发异常时显示堆栈跟踪 - 即使实际捕获了此异常。”。这种行为会破坏 PHPUnit 的输出。

现在,如果我没记错的话,德里克建议使用xdebug_disable();over ini_set('xdebug.show_exception_trace', 0);

于 2011-08-03T23:11:59.297 回答
1

这是因为使用 phpunit 的单元测试是从控制台运行的,控制台是一个 CLI 应用程序。您应该能够使用以下命令运行它:

php -dhtml_errors=1 `which phpunit` yourteststuff.
于 2011-08-03T22:56:08.290 回答