PhpStorm 2019.1ヘルプ

PHPUnitによるテスト

PhpStormは、PHPUnit(英語)テストフレームワークとの統合によるPHPアプリケーションの単体テストをサポートしています。

始める前に

ローカルPHPインタープリターの設定およびリモート PHPインタープリターの設定の説明に従って、PHPインタープリターがPHPページのPhpStormに設定されていることを確認してください。

PHPUnitのダウンロードとインストール

開始する前に、Composerがマシンにインストールされ、Composer依存マネージャーに従って現在のプロジェクトで初期化されていることを確認してください。

phpunit.pharを手動でダウンロードしてインストールする

  • phpunit.pharPHPUnit公式サイト(英語)からダウンロードし、コンピューターに保存します。

    • PHPUnitテストを実行する機能に加えて完全なコーディング支援が必要な場合は、phpunit.phar をPHPUnitが後で使用されるプロジェクトのルートに格納します。

    • PHPUnitテストを実行するだけで、コーディング支援が必要ない場合、phpunit.phar をプロジェクトの外に保存することができます。

Composerを使ってphpunit.pharをダウンロードしてインストールする

  1. composer.jsonのコンテキストメニューから、Composer | 依存性の管理を選択します。あるいは、メインメニューからツール | Composer | 依存性の管理を選択してください。

  2. 開いたComposerの依存関係を管理するダイアログで、使用可能なパッケージ リストからphpunit / phpunitパッケージを選択します。おそらく検索フィールドを使用します。

    インストールするバージョンリストから該当するバージョンを選択します。

  3. 必要に応じて、設定の隠し領域を展開して詳細インストールオプションを指定します。コマンド・ライン・パラメーターフィールドに、追加のコマンド行パラメーターを入力します。オプション --devを指定することをお勧めします。この場合のパッケージは、デフォルトの require セクションではなく、composer.json ファイルの require-dev セクションに追加されます。

  4. インストールをクリックします。

PHPUnitとPhpStormプロジェクトの統合

ローカルのPHPインタープリターを使用している場合、PhpStormは自動的にPHPUnitの初期設定を実行します。

PHPUnitを自動的に設定する

  1. phpunit.xml または phpunit.xml.dist 構成ファイルをプロジェクトルートに保存します。

  2. PHPUnitをComposerと一緒にインストールします

PhpStormはテストフレームワークページおよびPHPUnit実行/デバッグ構成上にローカルフレームワーク構成を作成します。

手動でPHPUnitを設定できます。リモート PHPインタープリターを使用している場合は、手動設定が必要です。

PHPUnitを手動で設定する

  1. 設定/環境設定ダイアログ(Ctrl+Alt+S)で、言語とフレームワークノードを展開し、PHPにあるテスト・フレームワークを選択します。

    開いているテストフレームワークページの中央ペインで Add icon をクリックし、リストから設定タイプを選択します。

    ps_settings_php_test_frameworks.png
    • ローカル設定では、デフォルトのプロジェクトPHPインタープリターが使用されます。詳細はデフォルトのプロジェクトCLIインタープリターを参照してください。

    • リモート PHPインタープリターでPHPUnitを使用するには、表示されるダイアログで以下のいずれかの設定を選択します。

      ps_settings_php_test_frameworks_phpunit_choose_php_interpreter.png
  2. 右側のペインで、PHPUnitライブラリーのインストールタイプを選択します。

    • Composerオートローダーを使用するには、vendor フォルダー内の autoload.php ファイルへのパスを指定します。詳細はComposerを参照してください。

    • phpunit.pharからPHPUnitを実行するには、phpunit.phar(英語)をダウンロードし、アーカイブをプロジェクトのルートフォルダーに保存し、そのパスを指定します。

      Reload buttonをクリックすると、PhpStormが検出され、PHPUnitのバージョンが表示されます。

    • PEAR(英語)からPHPUnitを実行するには、PEARをインクルードパスとして設定します。

      インストール手順は、使用するオペレーティングシステムとシステム設定によって異なります。このツールのインストールと設定についてはPHPUnitのインストール手順(英語)を参照してください。

  3. テスト・ランナー領域で、シナリオの起動と実行に使用する構成 XML ファイルを指定します。
    デフォルトでは、PHPUnitはプロジェクトのルートフォルダーまたは config フォルダーで phpunit.xml 構成ファイルを探します。カスタム設定ファイルを指定できます。

    また、ブートストラップファイルのパスを入力して、テストを開始する前にPHPスクリプトを常に実行させることもできます。フィールドに、スクリプトの場所を指定します。パスを手動で入力するか、browseButton.png をクリックして、表示されるダイアログで目的のフォルダーを選択します。

クラスのPHPUnitテストの生成

  1. 次のいずれかを実行して新しいPHPテストを作成するダイアログを開きます。

    • メインメニューからファイル | 新規を選択します。次に、コンテキストメニューからPHP テスト | PHPUnit テストを選択します。

    • プロジェクトツールウィンドウで、Alt+Insert を押すか、テストするPHPクラスを右クリックし、新規 | PHP テスト | PHPUnit テストを選択します。

    • テストするPHPクラスのエディターで、クラスの定義内にキャレットを置きます。次に、コンテキストメニューからジャンプ | テストを選択するか、または Ctrl+Shift+T を押してポップアップメニューから新規テストの作成を選択します。このようにして、単一のPHPファイル内の複数のクラス間で定義されたPHPクラスのテストを生成できます。

      特定のメソッドのテストを作成するには、メソッド宣言内にキャレットを配置します。選択した方法は、新しいPHPテストを作成するダイアログの次のテスト・メソッドを生成領域で自動的に選択されます。

  2. 新しいPHPテストを作成するダイアログが開きます。

    the Create new phpunit test dialog

    生成されたテストのパラメータを提供する:

    • テストファイルテンプレート、つまりPhpStormがテストクラスを生成するテンプレート。PHPunitテストファイルテンプレートリストで選択されていることを確認してください。

    • テストするクラスの完全修飾名。この名前は、テスト・クラス名の提案に使用されます。デフォルトでは、名前ボックスには、テスト生成が呼び出されたクラスの名前が表示されます。完了を使用するには、Ctrl+Spaceを押します。

    • テストクラスの名前。PhpStormは自動的にプロダクションクラス名から名前を <production class>Test.phpとして作成します。テストクラス名は、テスト・クラス領域の名前フィールドに表示されます。

    • テストクラスのフォルダー。デフォルトでは、テストソースのルートとしてマークされているフォルダーです。そのようなフォルダーが指定されていない場合は、プロダクションクラスを含むフォルダーが代わりに提案されます。

      別のフォルダーを指定するには、ディレクトリーフィールドの横にある the Browse button をクリックし、該当するフォルダーを選択します。

    • テストメソッドスタブを生成するための本番クラスメソッド。次のテスト・メソッドを生成領域で、必要な本番クラスメソッドの横にあるチェックボックスを選択します。親クラスから継承したメソッドを含めるには、継承されたメソッドを表示するチェックボックスを選択します。

      PhpStormはテストメソッドの名前を test<production method>として自動的に作成します。テストメソッドスタブの生成に使用されるコードテンプレートは、ファイルおよびコード・テンプレート設定ページのコードタブでカスタマイズできます。

  3. 定義済みの設定を確認、承認、または更新し、OKをクリックしてテスト生成を開始します。

テストが完了したら、ナビゲート | テスト対象にジャンプを選択して本番クラスに戻ることができます。詳細は、テストとテスト対象間の移動を参照してください。

PHPUnitテストメソッドを生成する

  1. エディターで必要なテストクラスを開き、クラス定義内の任意の場所にキャレットを配置します。

  2. コンテキストメニューで生成を選択するか、Alt+Insertを押します。次に生成リストからテスト・メソッドを選択します。

  3. テストフィクスチャをセットアップします。つまり、テスト開始前に必要な環境をエミュレートするコードのスタブを生成し、テストが終了した後に元の環境を返します。

    • コンテキストメニューで生成を選択するか、Alt+Insertを押します。次に、生成リストからsetUp メソッドまたはTearDown メソッドを選択します。

    詳細については、PHPUnit公式サイトのフィクスチャ(英語)を参照してください。

設定/環境設定ダイアログ(Ctrl+Alt+S)のファイルおよびコード・テンプレートページで、PHPUnitテストメソッドの生成に使用されるコードテンプレートをカスタマイズできます。このページにすばやくアクセスするには、生成リストでメソッドのサブメニューからテンプレートを編集を選択します。

Edit PHPUnit method template

PHPUnitテストの実行とデバッグ

単一のテストだけでなく、ファイルやフォルダー全体のテストも実行してデバッグすることができます。PhpStormは、デフォルト設定で実行/デバッグ設定を作成し、テストを起動します。後でこの設定を保存して、さらに再利用することができます。

PHPUnitテストの実行またはデバッグ

  • プロジェクトツールウィンドウで、テストを実行するファイルまたはフォルダーを選択し、選択したコンテキストメニューから実行 '<file or folder>'またはデバッグ '<file or folder>'を選択します。

    ps_test_frameworks_phpunit_launch_tests.png

    PhpStormはデフォルトの実行構成を生成し、実行/デバッグテストセッションを開始します。

単一のテストを実行またはデバッグする

  • エディターでテストファイルを開き、テストの呼び出しを右クリックして、コンテキストメニューから実行 '<test_name>'またはデバッグ '<test_name>'を選択します。

選択したテストを実行する

  1. エディターでターゲットファイルを開き、目的のテストターゲット、つまりテストするクラスまたはメソッドを右クリックし、ジャンプ | テストを選択するか Ctrl+Shift+Tを押します。

  2. ポップアップメニューから実行するテストを選択します。複数選択の場合は、Ctrl (macOSの場合は )と Shift キーを使用します。

    Run a selection of tests
  3. テスト選択を実行するには、Ctrl+Shift+F10 を押します。

テストセッションが終了すると、PhpStormは自動的にテスト・スコープコンポジットに設定された実行/デバッグ設定を作成します。詳細は実行/デバッグ構成: PHPUnitを参照してください。

自動的に生成されたデフォルト設定を保存する

  • テストセッションが終了したら、ファイルまたはフォルダーのコンテキストメニューから保存<default_test_configuration_name>を選択します。

以前に保存された実行/デバッグ設定によってテストを実行またはデバッグする

  • ツールバーのリストから必要なPHPUnit構成を選択し、the Run button または the Debug buttonをクリックします。

カスタム実行/デバッグ設定を作成する

  1. プロジェクトツールウィンドウで、実行するテストが含まれているファイルまたはフォルダーを選択し、コンテキストメニューから実行構成の作成を選択します。または、メインメニューから実行 | 構成の編集を選択してから Add icon をクリックし、リストからPHPUnitを選択します。

  2. 開いている実行/デバッグ構成: PHPUnitダイアログで、PHP実行ファイルに渡すオプションと引数を指定して、現在のPHP インタープリターの動作を実行およびカスタマイズするシナリオを指定します。

テスト結果の監視

PhpStormは実行ツール・ウィンドウテストランナータブにおけるテスト実行結果を示します。

ps_test_result_phpunit.png

このタブは大きく2つのエリアに分かれています。

  • 左側の領域では、すべての単体テストをドリルダウンして、成功したテストと失敗したテストを確認できます。テストのフィルタリング、結果のエクスポート、およびコンテキストメニューコマンドを使用して特定のテストを実行したりソースコードに移動したりできます。

  • 右側の領域には、生のPHPUnit出力が表示されます。

自動的にPHPUnitテストを実行する

影響を受けるコードが変更された場合、自動的にPhpStormを再実行することができます。このオプションは、実行/デバッグ構成ごとに構成され、この実行/デバッグ構成で指定されたテスト範囲に応じて、テスト、テストファイル、フォルダー、またはテストの複合選択に適用できます。

自動的に再実行テストを設定する

  1. テストを実行します。

  2. テスト・ランナータブで、ツールバーの ps_icon_phpunit_run_test_automatically.png トグルボタンを押します。

    ps_phpunit_enable-auto-test.png
  3. 必要に応じて、Settings button ボタンをクリックして、コードの変更時にテストを開始するための遅延時間を設定します。

    ps_phpunit_set-auto-test-delay.png
最終更新日: 2019年7月8日

関連事項

関連ページ:

ローカルPHPインタープリターの設定

ローカルPHPインタープリターは、リモートホストまたはVagrantインスタンスに設定された仮想環境にインストールできるリモート PHPインタープリターとは反対に、コンピューターにインストールされたPHPエンジンです。リモート PHPインタープリターの設定を参照してください。ローカルのPHPインター...

リモート PHPインタープリターの設定

リモート PHPインタープリターという用語は、リモートホストまたは仮想環境にインストールされたPHPエンジンを意味します。リモート PHPインタープリターという用語は、コンピューターにインストールされているローカルPHPインタープリターの反対語として使用されます。ローカルPHPインタープリターの設定...

Composer依存マネージャー

PhpStormはComposer依存マネージャーと統合されています。これにより、Packagistのパッケージをプロジェクトの依存関係として宣言し、IDEから管理することができます。PhpStormは、共通のComposerコマンド専用のユーザーインターフェースを提供します。Composerで新し...

テスト・フレームワーク

このページを使用して、PHP固有のテストフレームワークと現在のプロジェクトのPhpStormを統合します。PhpStormを使用すると、PHPUnit、Behat、Codeception、およびPHPSpecテストを実行およびデバッグできます。ページは2つのペインで構成されています。中央ペインには、...

コンテンツ・ルート内のフォルダーの構成

コンテンツ・ルート内では、PhpStormはソースコードを含むフォルダーと、検索、解析、監視などの際に無視されるフォルダーを区別できます。これを行うには、コンテンツ・ルートにある任意のフォルダーをソースフォルダーとしてマークするか、または除外してPhpStormから見えなくなるようにすることができま...

テストランナータブ

テストセッションが開始されると実行ツールウィンドウにテスト・ランナータブが開き、同じツールバーボタンが表示されます。実行ツールバーは実行ツールウィンドウとほぼ同じですが、テスト固有のボタンがあります。左側のペインには、現在の実行/デバッグ設定内のすべてのテストのツリービューが表示されます。ルートノー...