PhpStorm での効率的なテスト

このエピソードでは、PHPUnit、Pest、Behat、Codeception、PHPSpec など、PhpStorm による各種テストフレームワークのサポートについて詳しく説明します。IDE 内でテストスイートを直接実行する方法、テスト結果の解析方法、自動再実行を行うためのウォッチモードの利用方法、テストファイルを簡単に生成する方法を学習します。

トランスクリプト

ここではテストが重要である理由やその実施タイミングについて説明するのではなく、単に PhpStorm によってテストが大幅に単純化されることをお伝えしようと思います。PHPUnit、Pest、Behat、Codesception、PHPSpec のどのフレームワークで書くにしても、IDE にはこれらすべてのフレームワークに対応した統合機能が備わっています。

すでにあるテストスイートが準備済みであるとしましょう。ターミナルでそのテストスイートを実行する代わりに、PhpStorm でテストフォルダーを選択し、Control+Shift+R を押すことができます。サブフォルダー、個別のテストクラス、または特定のテストメソッドに対しても同じ操作を実行できます。コード内のどこか別の場所にいる場合でも、Control+R を押してテストスイートを再実行できます。もちろん、これらすべてのアクションは Shift+Shift メニューでも検索できます。Run(実行)を検索すると、すべての関連するオプションが表示されます。

PhpStorm はテストウィンドウにテスト結果を表示します。このウィンドウにあるボタンを使用すれば、失敗したすべてのテストを再実行できます。コードを変更するたびに自動的にテストを実行するウォッチモードを有効にすることもできます。さらに、このテストウィンドウ内ではファイルやメソッドをダブルクリックして失敗しているテストに素早く移動したり、実行ガターアイコンをクリックしてテストクラス内から特定のテストを再実行したりすることも可能です。

PhpStorm はテストのカバレッジもサポートしているため、コードベースのどの行がテストスイートでカバーされていないかを確認できます。IDE のガターには注意が必要な箇所をハイライトする視覚的なインジケーターもあります。

次に、私が気に入っている PhpStorm のテストファイル生成機能を説明しましょう。あるファイル内で Shift+Shift を押し、Go To Test(テストに移動)を検索します。その特定のクラスに対応するテストファイルが存在する場合はそのファイルに移動し、存在しない場合は PhpStorm によってそのファイルが自動的に作成されます。

テストからテスト対象に移動することも可能です。この操作にも同じキーボードショートカットを使用可能です。Shift+Shift を押して Go To Test Subject(テスト対象に移動)を検索すると、テスト対象を見つけられます。

最後に、テストの作成について取り上げます。この作業が面倒であることは否めません。特に最初のテストクラスのセットアップは面倒です。有効な AI Assistant ライセンスと AI Assistant プラグインがインストールされている場合、PhpStorm の AI Assistant を使用してテストクラス全体を生成できます。クラス内で Alt+Enter を押して AI Actions(AI アクション)を選択し、Generate Tests(テストの生成)を続けて選択してください。AI Assistant によってプレビューが生成されますので、必要に応じて調整を行うことができます。時間の節約になるちょっとした便利なショートカットです。

テストをお楽しみください :-)