XDebugが有効な環境では、例外の詳細なスタックトレースが自動でロギングされるため、原因特定に大変役立つ。
しかしPHPUnitコマンドはxdebug.show_exception_trace
をoffにするため、「何が」「どこが」問題なのか原因が調べにくい事がある。
テスト対象のコードで発生した例外はスタックトレース表示するため、通常は問題無いのだが、PHPUnit自体のメソッドの引数を間違えたりすると、抑制されたエラーとしてしか表示されず、不便である。
先述の通りxdebug.show_exception_trace
を設定すればいいため、
bootstrapスクリプトか、phpunit.xmlでini_set
すれば、抑制されず全部のスタックトレースが表示されるようになる。
phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
colors="true"
bootstrap="vendor/autoload.php">
<!-- ... -->
<php>
<ini name="xdebug.show_exception_trace" value="1"/>
</php>
<!-- ... -->
</phpunit>
ただし@expectedExceptionなども表示されて非常に読みにくくなるので、困った時だけonにする方がおすすめ。
デフォルトoffなのは、単に見やすさのためかな?
参考:
http://stackoverflow.com/questions/6934216/why-does-phpunit-hide-my-xdebug-backtrace