PhpStorm 2026.1 Help

PHPSpec

PhpStorm では、 仕様PHPSpec ツールセットを使って実行することで、ビヘイビア駆動開発の実践ができます。

始める前に

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

Composer と一緒に PHPSpec をインストールする

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

  1. composer.json 内で、 phpspec/phpspec 依存関係レコードを require キーまたは require-dev キーに追加します。 パッケージ名とバージョンのコード補完を取得するには、 Ctrl+Space を押します。

  2. 次のいずれかを実行します:

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

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

PHPSpec 公式サイト(英語)からの PHPSpec のインストールの詳細を参照してください。

composer.json エディターのガター内のパッケージレコードの横にある 設定ボタン をクリックすると、対応する 設定 ページが表示され、そこで PHPSpec を手動で構成できます。

composer.json の phpspec 設定のガターアイコン

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

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

PHPSpec を自動的に設定する

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

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

PhpStorm は、インストール済みの PHPSpec 実行可能ファイル(プロジェクトに Composer 管理のサブプロジェクトがあり、PHPSpec 依存関係が指定されている場合は複数の実行可能ファイル)を検出し、インストールされた各 PHPSpec 実行可能ファイルごとに テストフレームワークページでテストフレームワーク構成を作成します。

PHPSpec の構成

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

PHPSpec の実行 / デバッグ構成

PHPSpec を手動で設定する

  1. 設定 ダイアログ(Ctrl+Alt+S )で、 PHP | テストフレームワーク に移動します。

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

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

    • リモート PHP インタープリターで PHPSpec を使用するには、表示されたダイアログで設定を 1 つ選択します:

      ps_settings_php_test_frameworks_phpspec_choose_php_interpreter.png
  2. PHPSpec 実行ファイルへのパス フィールドで、 phpspec の場所を指定します。 PHPSpec は必ずしも現在のプロジェクトルートにインストールする必要はありません。 PHPSpec ディレクトリまたは phar ファイルへのパス フィールドの横にある the Reload button をクリックします。 PhpStorm は PHPSpec のバージョンを検出し、フィールドの下に表示します。

    ローカルインタープリターに PHPSpec へのパスが指定されていない場合、PhpStorm は PHPSpec の完全なサポートを提供しません。たとえば、コード補完の候補を表示したり、参照を解決したりしません。

  3. テストランナー 領域で、シナリオの起動と実行に使用する構成 YML ファイルへのパスを設定します。

    • デフォルト構成ファイル チェックボックスをオフにすると、PHPSpec はプロジェクトのルートフォルダーにある phpspec.yml または phpspec.yml.dist 設定ファイルを使用します。 該当するファイルが見つからない場合、テスト実行は失敗します。 そのため、設定ファイルを明示的に指定した方が確実です。

    • すべての PHPSpec 実行 / デバッグ構成でデフォルトの構成ファイルとして使用される YML ファイルへのパスを指定するには、 デフォルト構成ファイル チェックボックスを選択します。

    ローカル構成では、 接頭辞 ('spec_prefix' ): 読み取り専用フィールドに仕様の名前空間接頭辞が表示されます。 PhpStorm は、 デフォルト構成ファイル フィールドで指定された構成ファイルから spec_prefix を検出します。 デフォルト値は spec です。 詳細については、「PHPSpec の設定: PSR-4(英語) および PHPSpec の設定: スペックとソースの場所(英語) 」を参照してください。

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

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

    • ファイル | 新規 に進みます。 次に、コンテキストメニューから PHP テスト | PHPSpec のスペック を選択します。

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

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

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

  2. 開いた 新しい PHP テストを作成する ダイアログで、生成されたテストのパラメーターを指定します。

    新しい phpspec テストを作成するダイアログ
    • テストファイルテンプレート :PhpStorm がテストクラスを生成する際のテンプレートです。 リストから PHPSpec が選択されていることを確認します。

    • 命名: テストクラスの名前。 PhpStorm は本番クラス名から <production class>Spec.php という名前を自動的に作成します。

    • ディレクトリ: テストクラス ファイル用のフォルダーで、本番クラスのディレクトリや名前空間、設定された テストソースルートおよびその PSR-4 パッケージ プレフィックス 、または src_path の値が phpspec.yml構成ファイルで指定された場合に基づいて、自動的に提案されます。 自動フォルダー提案が正しく機能するためには、テストスイートと本番クラスの名前空間が一致している必要があります。

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

    • 名前空間: テストクラスが属する名前空間で、本番クラスのディレクトリや名前空間、設定された テストソースルートやその psr-4 パッケージプレフィックス 、または spec_prefix および 名前空間 の値が phpspec.yml構成ファイルで指定された場合に基づいて、自動的に提案されます。

    • メンバー: テストメソッドスタブを生成する製品クラスメソッドのリスト。 必要な製品クラスメソッドの横にあるチェックボックスをオンにします。 親クラスから継承されたメソッドを含めるには、 継承メソッドの表示 チェックボックスをオンにします。

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

テストが作成されたら、 移動 | テスト対象に移動 を選択して実稼働クラスに戻ることができます。 詳細については、 テストとそのテスト対象の間を移動する を参照してください。

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

PHPSpec のスペックの書き方の詳細については、「PHPSpec のドキュメント(英語) 」を参照してください。 テストを実行またはデバッグするには、次のいずれかを実行します。

PHPSpec テストを実行またはデバッグする

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

    ps_test_frameworks_phpspec_launch_tests.png

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

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

  • テストセッションが終了したら、実行ウィジェットのそれぞれの実行 / デバッグ構成のコンテキストメニューから 構成の保存 を選択します。

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

  • ツールバーのリストから必要な PHPSpec 設定を選択し、 the Run button または 「デバッグ」ボタン をクリックします。

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

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

  2. 開いた PHPSpec ダイアログで、実行するシナリオを指定し、使用する PHP インタープリターを選び、PHP 実行可能ファイルに渡すオプションや引数を指定して動作をカスタマイズします。

テスト結果を監視する

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

ps_test_result_phpspec.png

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

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

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

2026 年 5 月 22 日