PhpStorm 2020.2 ヘルプ

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 内で、phpunit / phpunit 依存関係レコードを require または require-dev セクションに追加します。 Ctrl+Space を押して、パッケージ名とバージョンの両方のコード補完を取得します。

  2. 以下のいずれか 1 つを実行します :

    • エディターパネルの上部にあるインストールショートカットリンクをクリックします。

    • インストールされていない Composer パッケージインスペクションが有効になっている場合、PhpStorm は、現在インストールされていない宣言済みの依存関係を強調表示します。 Alt+Enter を押して、特定の依存関係をインストールするか、すべての依存関係を一度にインストールするかを選択します。

composer.json エディターのガターでパッケージレコードの横にあるthe Settings/Preferences buttonをクリックして、対応する設定 / 環境設定ページにジャンプし、PHPUnit を手動で構成します

Gutter icon for phpunit settings in composer.json

PHPUnit を PhpStorm プロジェクトと統合する

ローカルの PHP インタープリターを使用する場合、PhpStorm は PHPUnit の初期構成を自動的に実行します。リモート PHP インタープリターの場合、手動の PHPUnit 構成が必要です。

PHPUnit を自動的に設定する

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

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

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

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 オートローダーを使用するには、ベンダーフォルダー内の autoload.php ファイルへのパスを指定します。詳細については、Composer を参照してください。

    • phpunit.phar から PHPUnit を実行するには、phpunit.phar(英語) をダウンロードし、プロジェクトのルートフォルダーにアーカイブを保存して、そのパスを指定します。ローカル構成の場合、ダウンロードリンクをクリックしてアーカイブをダウンロードできます。現在のプロジェクトで使用するには、デフォルトの PHP インタープリターが定義されていることを確認してください。

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

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

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

    PHPUnit の実行 / デバッグ構成を編集するときに、別の設定とブートストラップファイルを指定することもできます。

クラスの PHPUnit テストを生成する

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

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

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

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

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

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

    the Create new phpunit test dialog

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

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

    • テストクラスの名前。PhpStorm は、本番クラス名から自動的に名前を <本番クラス> Test.php として作成します。

    • テストクラスファイルのフォルダー。本番クラスを含むディレクトリと名前空間、構成済みのテストソースルートとその psr-4 パッケージプレフィックス、または phpunit.xml(英語) 構成ファイルで指定された directory 値に基づいて自動的に提案されます。

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

    • テストクラスが属する名前空間。これは、本番クラスを含むディレクトリと名前空間、構成されたテストソースルート、およびその psr-4 パッケージプレフィックスに基づいて自動的に提案されます。

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

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

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

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 および 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
最終更新日 :

関連ページ:

ローカル PHP インタープリターを構成する

ローカル PHP インタープリターは、リモート PHP インタープリターの反対側にコンピューターにインストールされた PHP エンジンであり、リモートホストまたはVagrantインスタンスにセットアップされた仮想環境にインストールできます。リモート PHP インタープリターの構成を参照してくだ...

リモート PHP インタープリターの構成

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

Composer 依存関係マネージャー

PhpStorm はComposer依存関係マネージャーと統合されます。これにより、Packagistまたはカスタムリポジトリからのパッケージをプロジェクトの依存関係として宣言し、IDE から管理できます。PhpStorm は、composer.jsonを操作するための包括的なコーディング支援と、一...

テストフレームワーク

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

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

コンテンツルート内では、PhpStormはソースコードを含むフォルダーと、検索、解析、監視などの際に無視されるフォルダーを区別できます。さまざまなタイプのフォルダーを区別するには、コンテンツルートのフォルダーをソースフォルダーまたは除外フォルダーとしてマークします。コンテンツルート内では、PhpSt...

プロジェクトで PHP 名前空間を構成する

PhpStorm には、プロジェクトルートフォルダーがパッケージおよび名前空間のルートでもあることを指定する構成可能な規則が付属しています。つまり、プロジェクトのルートフォルダーはデフォルトでソースとしてマークされ、そに作成されるすべてのディレクトリは個別のネームスペースと見なされます。これは、オー...