PHPUnit
commandline
ozvisionDay 15

phpUnitの便利メモ: コマンドラインで実行するとき便利なオプション紹介

あるディレクトリー内のすべてのテストを実行させたい時

該当ディレクトリーのファイル名をすべて「~Test.php」になるように変更するのもできますが、既存の物が多いと面倒ですね。
別の方法として、自分で決めた末尾をphpUnitの設定に書く方法。
でも、これもあんまりやりたくない場合があります。
その時は、[--test-suffix]の設定を使います。実行コマンドに以下のような記述を足すだけで、指定のディレクトリー内にある、ファイル名が「.php」で終わっているすべてのファイルが実行されるようになります。

--test-suffix=.php

時間がかかるテストを素早く止めたい時

ケースの数が多く、時間がかかるテストがある場合、途中の失敗を早く確認したいときがあると思います。
とはいえ、毎回それで設定ファイルを触りたくないですし・・・

失敗したら、実行を止めたい時

--stop-on-failure

を付けます。
さらにデバッグ情報を出した状態にすると見やすいので、私はよく

--stop-on-failure --debug

という組み合わせを使います。このオプションは「失敗またはエラーで停止」をしてくれるので、下に書いた、エラーで停止を組み合わせる必要はないです。

エラーがでたら、実行を止めたい時

上の記述と似ています。エラーの場合、最後まで待ちたくない時は

--stop-on-error

--stop-on-error --debug

で止まってくれます。

phpの設定値を実行するときだけ書き換えたい時

ローカルのphp.iniを毎回触るのは面倒だし、場合(環境)によってできない時だって、あります。
しかし、それでも大きなデータを扱うテストしたかったり、色々とありますよね・・・
phpunitのコメントに、php.iniの設定値を実行中にだけ、上書きできるオプションがあります。

例えば、メモリを大きく、と:

 -d memory_limit=128M

とコメントに足せばOKです。

これももちろん、他のオプションと組み合わせることができます。

 -d memory_limit=128M --debug --test-suffix=.php

とかにして、一気にデバッグ情報を確認しながら、ディレクトリー内のテストを全部実行してしまいましょう。多い場合時間がかかりかもしれませんが、その間は、コーヒーでも飲んでしまえば、いいんです。^^