我已經安裝的PHPUnit和Xdebug,並在我的CLI的php.ini文件,我已經有了:爲什麼PHPUnit隱藏我的xdebug backtrace?
display_errors = On
xdebug.default_enable = 1
我已經證實,當我使用交互式控制檯創建錯誤的Xdebug的回溯打印,但是當運行phpunit時發生錯誤時,沒有回溯?
回溯發生了什麼? phpunit是從我這裏隱藏的嗎?有我缺少的設置嗎?
謝謝!
我已經安裝的PHPUnit和Xdebug,並在我的CLI的php.ini文件,我已經有了:爲什麼PHPUnit隱藏我的xdebug backtrace?
display_errors = On
xdebug.default_enable = 1
我已經證實,當我使用交互式控制檯創建錯誤的Xdebug的回溯打印,但是當運行phpunit時發生錯誤時,沒有回溯?
回溯發生了什麼? phpunit是從我這裏隱藏的嗎?有我缺少的設置嗎?
謝謝!
發生了什麼事,以回溯? phpunit是從我這裏隱藏的嗎?
是的,PHPUnit禁用xdebug,至少這些痕跡(通過調用xdebug_disable()
Docs)。
有沒有我失蹤的一些設置?
您可以添加bootstrap文件,在其中您xdebug_enable()
Docs再次啓用它。這是行得通的,但會顯示堆棧跟蹤拋出的任何異常(捕捉或未捕捉)。
見,以及:Issue #221 PHPUnit disables xdebug,還有另一個INI設定提示:
sebastianbergmann:問題是
xdebug.show_exception_trace
配置設置。當設置爲1
時,這將「在每次引發異常時顯示堆棧跟蹤 - 即使這個異常實際被捕獲。」。這種行爲打破了PHPUnit的輸出。現在,如果我沒有記錯,Derick推薦使用
xdebug_disable();
而不是ini_set('xdebug.show_exception_trace', 0);
。
這是因爲phpunit的單元測試是從控制檯運行的,這是一個CLI應用程序。你應該能夠與運行:
php -dhtml_errors=1 `which phpunit` yourteststuff.
現在我不記得推薦或爲什麼:)。我知道show_exception_trace是[默認關閉](http://xdebug.org/docs/stack_trace#show_exception_trace) – Derick
這可能是值得再次檢查PHPUnit中的做法:)我會運行一些測試。 – hakre
在開始時調用xdebug_enable()就可以實現。謝謝! –