ローカル環境でPHPUnitのテストを実施する時、ファイル単位やメソッド単位でテストする方法をつい忘れがちになるのでメモがてら残しておく。検証したPHPUnitのバージョンは6.5.13。
特定のテストファイル名もしくはテスト名のみ実行させたければ–filter
指定した単語が入っているテストファイルだけをテスト実行対象にしたり、あるいは指定した単語が入っているテストメソッドだけをテスト実行対象にしたい場合は
–filter
オプションを使おう。
ちなみに特定のテストファイルだけ実行したい場合は–filterを使わずとも、phpunitの次に実行させたいテストファイルのパス+ファイル名を指定するだけでOK。
テスト実行中にどのテストが失敗したかがすぐに分かるようにしたければ–testdox
普通にphpunitコマンドでテストすると、テストの実行結果はリアルタイムで.やF, E等で表示してくれるが、どのテストがSUCCESSしててどのテストがFAILUREしているかまでは分からない。
そこで役立つのがこの
–testdox
というオプション。doxというワードが聞きなれず、ついboxにしがちだがdoxである。このオプションをつけて実行すると、どのテスト名で成功したかあるいはこけたかを[x] または [ ]でリアルタイム表示してくれるのだ。テストに失敗した場合は[ ]となり、xがつかない。
1 2 3 4 5 6 7 8 9 10 11 |
bash-4.2# vendor/bin/phpunit tests/TestCase/Controller/Component/HogeComponentTest.php --testdox PHPUnit 6.5.13 by Sebastian Bergmann and contributors. App\Test\TestCase\Controller\Component\HogeComponent [ ] Initialize [x] Set [x] Get [x] GetByName [x] SetName bash-4.2# |
ただこのオプション、テスト完了後にこけたテストの具体的な原因をアウトプットしてくれないのが難点。そのため、ある程度広範囲にテストを実施してみて、こけているテストを真っ先に特定したい時に使うのが良いと思われる。
どんなオプションがあるかをもっと知りたいと思ったら–help
こちらは定番。phpunitのオプションをもっと知りたい場合は
–help
オプションで調べよう。
ちなみにphpunit6.5.13においては、下記のオプション区分がある:
- Code Coverage Options:テスト実行結果のカバレッジレポートを生成する際のフォーマット等を指定できる
- Logging Options:テスト実行結果のログを生成する際のフォーマット等を指定できる
- Test Selection Options:テストの実行範囲等を指定できる。前述の–filterはここに所属する
- Test Execution Options:テスト実行時に関する細かな設定ができる。前述の–testdoxはここに所属する
- Configuration Options:XMLで記述したテスト実行における設定ファイルの読み込み等を細かく指定できる
- Miscellaneous Options:–helpや–check-versionなど、PHPUnitに関すること全般の出力を司る
参考) phpunitの実行のあれこれ