PHPUnit
PhpStorm は、 PHPUnit テストフレームワークとの統合により、PHP アプリケーションのユニットテストをサポートします。
始める前に
PHP ページで、 ローカル PHP インタープリターを構成する および リモート PHP インタープリターの構成 の説明に従って、PhpStorm に PHP インタープリターが設定されていることを確認してください。
PHPUnit をダウンロードしてインストールする
開始する前に、Composer がマシンにインストールされ、 Composer 依存関係マネージャー に従って現在のプロジェクトで初期化されていることを確認してください。
phpunit.phar を手動でダウンロードしてインストールする
phpunit.phar を PHPUnit 公式サイト(英語)からダウンロードし、コンピューターに保存します。
PHPUnit テストを実行する機能に加えて完全なコーディング支援が必要な場合は、 phpunit.phar を PHPUnit が後で使用されるプロジェクトのルートに格納します。
PHPUnit テストを実行するだけで、コーディング支援が必要ない場合、 phpunit.phar をプロジェクトの外に保存することができます。
Composer を使って phpunit.phar をダウンロードしてインストールする
composer.json 内で、
phpunit/phpunit依存関係レコードをrequireキーまたはrequire-devキーに追加します。 パッケージ名とバージョンのコード補完を取得するには、 Ctrl+Space を押します。次のいずれかを実行します:
エディターパネルの上部にある インストールする ショートカットリンクをクリックします。
インストールされていない Composer パッケージ インスペクションが有効化されている場合、PhpStorm は現在インストールされていない宣言済みの依存関係をハイライトします。 Alt+Enter を押して、特定の依存関係をインストールするか、すべての依存関係を一度にインストールするかを選択します。
composer.json エディターのガター内のパッケージレコードの横にある をクリックすると、対応する 設定 ページが表示され、そこで PHPUnit を手動で構成できます。

PHPUnit を PhpStorm プロジェクトと統合する
ローカル PHP インタープリターを使用する場合、PhpStorm は PHPUnit の初期構成を自動的に実行します。 リモート PHP インタープリターの場合、手動の PHPUnit 構成が必要です。
PHPUnit を自動的に設定する
phpunit.xml または phpunit.xml.dist 構成ファイルをプロジェクトルートに保存します。
PhpStorm はインストールされている PHPUnit 実行可能ファイル (プロジェクトに指定された PHPUnit 依存関係を持つ Composer 管理のサブプロジェクトがある場合は複数の実行可能ファイル) を検出し、インストールされている各 PHPUnit 実行可能ファイルごとに テストフレームワークページにテストフレームワーク構成を作成します。

phpunit.xml または phpunit.xml.dist 構成ファイルがプロジェクト (またはサブプロジェクト) のルートで自動的に検出されるか、 手動構成中に明示的に指定された場合、PhpStorm は該当する PHPUnit 実行 / デバッグ構成も作成します。

PHPUnit を手動で設定する
設定 ダイアログ(Ctrl+Alt+S )で、 に移動します。
開いている テストフレームワークページの中央ペインで
をクリックし、リストから設定タイプを選択します。

ローカル構成では、デフォルトのプロジェクト PHP インタープリターが使用されます。 詳細については、 デフォルトのプロジェクト CLI インタープリターを参照してください。
リモート PHP インタープリターで PHPUnit を使用するには、表示されるダイアログで以下のいずれかの設定を選択します。

右側のペインで、PHPUnit ライブラリのインストールタイプを選択します。
Composer オートローダーを使用するには、 vendor フォルダー内の autoload.php ファイルへのパスを指定します。 詳細については、 Composer を参照してください。
phpunit.phar から PHPUnit を実行するには、 phpunit.phar(英語) をダウンロードし、アーカイブをプロジェクトのルートフォルダーに保存して、そのパスを指定します。 ローカル構成の場合は、提供されているダウンロードリンクをクリックしてアーカイブをダウンロードできます。 現在のプロジェクトで使用するには、デフォルトの PHP インタープリターが定義されていることを確認してください。
をクリックすると、PhpStorm が PHPUnit バージョンを検出して表示します。
テストランナー 領域で、シナリオの起動と実行に使用する構成 XML ファイルへのパスを設定します。
ブートストラップファイルへのパスを入力して、テストを起動する前に常に PHP スクリプトを実行することもできます。 フィールドで、スクリプトの場所を指定します。 パスを手動で入力するか、
をクリックして 表示されるダイアログで目的のフォルダーを選択してください。
編集時に、特定の PHPUnit 実行 / デバッグ構成に対して代替構成とブートストラップファイルを提供することもできることに注意してください。
クラスの PHPUnit テストを生成する
次のいずれかを実行して 新しい PHP テストを作成する ダイアログを開きます。
に進みます。 次に、コンテキストメニューから PHP テスト | PHPUnit テスト を選択します。
プロジェクト ツールウィンドウで、 Alt+Insert を押すか、テストする PHP クラスを右クリックしてを選択します。
テストする PHP クラスのエディターで、クラスの定義にキャレットを置きます。 次に、 Alt+Enter を押して、ポップアップメニューから 新規テストの作成 を選択します。 この方法で、単一の PHP ファイル内の複数のクラス間で定義された PHP クラスのテストを生成できます。
特定のメソッドのテストを作成するには、メソッド宣言内にキャレットを置きます。 選択したメソッドは、 新しい PHP テストを作成する ダイアログのメソッドのリストから自動的に選択されます。
開いた 新しい PHP テストを作成する ダイアログで、生成されたテストのパラメーターを指定します。

テストファイルテンプレート :PhpStorm がテストクラスを生成する際のテンプレートです。 リストから PHPUnit (PHPUnit バージョン 6 以前を使用している場合は PHPUnit <6) が選択されていることを確認します。
命名: テストクラスの名前。 PhpStorm は本番クラス名から <production class>Test.php という名前を自動的に作成します。
ディレクトリ :テストクラスファイルのフォルダーであり、対象となるディレクトリや本番クラスの名前空間、設定された テストソースルートとその PSR-4 パッケージプレフィックス 、または phpunit.xml構成ファイルで指定した
ディレクトリ値に基づいて自動的に提案されます。別のフォルダーを指定するには、 ディレクトリ フィールドの横にある
をクリックし、該当するフォルダーを選択します。
名前空間: テストクラスが属する名前空間は、本番クラスのディレクトリや名前空間、設定された テストソースルートや psr-4 パッケージプレフィックスに基づき自動的に提案されます。
メンバー: テストメソッドスタブを生成する製品クラスメソッドのリスト。 必要な製品クラスメソッドの横にあるチェックボックスをオンにします。 親クラスから継承されたメソッドを含めるには、 継承メソッドの表示 チェックボックスをオンにします。
PhpStorm は、テストメソッドの名前を
test<production method>として自動的に作成します。 テストメソッドスタブの生成に使用されるコードテンプレートは、 ファイルおよびコードテンプレート 設定ページの コード タブでカスタマイズできます。
テストが作成されたら、 移動 | テスト対象に移動 を選択して実稼働クラスに戻ることができます。 詳細については、 テストとそのテスト対象の間を移動する を参照してください。
PHPUnit テストメソッドを生成する
エディターで必要なテストクラスを開き、クラス定義内の任意の場所にキャレットを置きます。
コンテキストメニューで 生成する… を選択するか、 Alt+Insert を押します。 次に 生成する リストから テストメソッド を選択します。
テスト フィクスチャをセットアップします。つまり、テスト開始前に必要な環境をエミュレートするコードのスタブを生成し、テスト終了後に元の環境に戻します:
コンテキストメニューで 生成する… を選択するか、 Alt+Insert を押します。 次に、 生成する リストから SetUp メソッド または TearDown メソッド を選択します。
詳細は、 PHPUnit 公式サイトのフィクスチャ(英語)を参照してください。
設定 ダイアログ (Ctrl+Alt+S) の ファイルおよびコードテンプレート ページで、PHPUnit テストメソッドの生成に使用される コードテンプレートをカスタマイズできます。 このページにすばやくアクセスするには、 生成する リストでメソッドのサブメニューから テンプレートの編集 を選択します。

PHPUnit テストの実行とデバッグ
単一のテストだけでなく、ファイルやフォルダー全体のテストも実行およびデバッグできます。 PhpStorm はデフォルト設定で実行 / デバッグ構成を作成し、テストを起動します。 この構成は後で再利用できるように保存できます。
PHPUnit テストの実行またはデバッグ
プロジェクトツールウィンドウで、テストを実行するファイルまたはフォルダーを選択し、選択したコンテキストメニューから 実行 '<ファイルまたはフォルダー>'; または デバッグ '<ファイルまたはフォルダー>'; を選択します。

PhpStorm はデフォルトの実行構成を生成し、それを使って実行または デバッグテストセッションを開始します。
単一のテストを実行またはデバッグする
ファイルエディターウィンドウから、特定のテストクラスまたはテストメソッドの単一のテストを実行またはデバッグできます。
エディターでテストファイルを開き、テストの横のガターで
をクリックし、コンテキストメニューから 実行 '<test_name>'; または デバッグ '<test_name>'; を選択します。 あるいは、対応する行にキャレットを置き、 Ctrl+Shift+F10 を押します。

単一のデータセットに対してテストを実行する
PHPUnit テストで データプロバイダー(英語)を使用する場合、一部のタイプのデータセットに対して単一のテストを実行できます。 個別に実行できるデータセットは、エディターで ガターアイコンでマークされます。
ファイルエディターで、データセットの横のガターにある
をクリックするか、該当するコード行を右クリックして 実行 '<test_name>'; を選択します。

選択したテストを実行する
エディターでターゲットファイルを開き、目的のテストターゲット、つまりテストするクラスまたはメソッドを右クリックし、 を選択するか Ctrl+Shift+T を押します。
ポップアップメニューから、実行するテストを選択します。 複数選択の場合は、 Ctrl および Shift を使用します。

テスト選択を実行するには、 Ctrl+Shift+F10 を押します。
テストセッションが終了した後、PhpStorm は テストスコープ を コンポジット に設定した実行 / デバッグ構成を自動的に作成します。 詳細については、 PHPUnit を参照してください。
自動生成された構成を永続的なものとして保存する
テストセッションが終了したら、実行ウィジェットのそれぞれの実行 / デバッグ構成のコンテキストメニューから 構成の保存 を選択します。

以前に保存された実行 / デバッグ構成によってテストを実行またはデバッグする
ツールバーのリストから必要な PHPUnit 構成を選択し、
または
をクリックします。
カスタム実行 / デバッグ構成を作成する
プロジェクト ツールウィンドウで、実行するテストが含まれるファイルまたはフォルダーを選択し、コンテキストメニューから 実行構成の作成 を選択します。 あるいは、メインメニューで に移動し、
をクリックしてリストから PHPUnit を選択します。
開いた PHPUnit ダイアログで、実行するシナリオを指定し、使用する PHP インタープリターを選び、PHP 実行可能ファイルに渡すオプションや引数を指定して動作をカスタマイズします。
PHPUnit テストを並行して実行する
PhpStorm での PHPUnit テストの実行を高速化するには、 ParaTest パッケージを使用し、並列プロセスで実行できます。 並列実行オプションは、フォルダー (テストスイート) にグループ化された PHPUnit テストに対して設定できます。
次のいずれかの方法で、 テストランナー 設定で PhpStorm 用 ParaTest バイナリファイルへのパスを設定します:
設定 ダイアログ (Ctrl+Alt+S) で、 に移動し、 デフォルトの ParaTest バイナリ フィールドを設定します。

既存の実行構成の場合、 実行構成 ダイアログを開き、 ParaTest を使用する チェックボックスを選択して、フィールドにファイルへのパスを設定します。

プロジェクト ツールウィンドウで、テストを実行するフォルダーを右クリックし、コンテキストメニューから <test_name> (PHPUnit) を ParaTest で実行する オプションを選択します。

または、 phpunit.xml 構成ファイルを右クリックし、コンテキストメニューから ParaTest で `phpunit.xml (PHPUnit)` を実行する オプションを選択します。
テスト結果を監視する
PhpStorm は 実行ツールウィンドウ の テストランナータブにテスト実行結果を表示します。

このタブは大きく 2 つのエリアに分かれています。
左側の領域では、すべての単体テストをドリルダウンして、成功したテストと失敗したテストを確認できます。 テストのフィルタリング、結果のエクスポート、コンテキストメニューコマンドを使用して特定のテストを実行したりソースコードに移動したりできます。
右側の領域には、生の PHPUnit 出力が表示されます。
PHPUnit テストを自動的に実行する
影響を受けたコードが変更された場合、PhpStorm でテストを自動的に再実行することができます。 このオプションは、実行 / デバッグ構成ごとに構成され、この実行 / デバッグ構成で指定されたテスト範囲に応じて、テスト、テストファイル、フォルダー、テストの複合選択に適用できます。
テストを実行します。
実行 ツールバーで、
自動的に再実行 をクリックします。

オプションで、コードの変更時にテストを開始するまでの遅延時間を設定します。 これを行うには、 実行 ツールバーで
をクリックし、
テストランナーの設定 | 自動テスト遅延の設定 を選択します。
