這兩天又遇到一次,這應該是 Laravel 裡設計比較奇怪的地方,既然是跑 PHPUnit 的環境,為什麼不預設在錯誤發生時把完整的 stack 拋到 console...
這邊的解法是參考「Laravel: How to enable stacktrace error on PhpUnit」這篇的解答。
舊版需要自己丟 handler 進去 (5.4 以及之前的版本),在 5.5+ (寫這篇時最新的穩定版本已經是 5.6) 有內建 withoutExceptionHandling()
可以用,所以在 tests/TestCase.php
內搞定 setUp()
:
protected function setUp() { parent::setUp(); $this->withoutExceptionHandling(); }
不知道有沒有機會直接進 Laravel 的 package 設定裡面...