LoginSignup
9
11

More than 5 years have passed since last update.

PHPUnit自体のエラーもstacktrace表示する

Posted at

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

9
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11