PhpStorm 2019.3ヘルプ

PHPSpecを使用したテスト

PhpStormを使用すると、PHPSpecツールセットを使用して仕様を実行することで、動作駆動型開発を実践できます。

始める前に

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

Composerを使用したPHPSpecのインストール

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

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

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

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

  3. 必要に応じて、設定隠し領域を展開し、拡張インストールオプションを指定します。コマンド・ライン・パラメーターフィールドに、追加のコマンドラインパラメータを入力します。

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

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

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

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

PHPSpecを自動的に設定する

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

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

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

PHPSpecを手動で設定する

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

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

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

    • ZZC1C 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にプロジェクトルートフォルダーの phpspec.yml または phpspec.yml.dist 設定ファイルを使用させます。そのようなファイルが見つからない場合、テストの実行は失敗します。構成ファイルを明示的に指定する方が信頼性が高くなります。

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

      このフィールドで、使用する構成ファイルの場所を指定します。手動でパスを入力するか、the Browse button をクリックして表示されるダイアログでファイルを選択します。

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

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

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

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

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

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

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

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

    the Create new phpspec test dialog

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

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

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

    • テストクラスファイルのフォルダー。本番クラスを含むディレクトリとネームスペース、構成済みのテストソースルートとそのpsr-4パッケージプレフィックス、またはphpspec.yml(英語)構成ファイルで指定された src_path 値に基づいて自動的に提案されます。自動フォルダー提案が正しく機能するためには、テストスイートと本番クラスの名前空間が一致する必要があることに注意してください。

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

    • テストクラスが属するネームスペース。本番クラスの含まれるディレクトリとネームスペース、構成されたテストソースルートとそのpsr-4パッケージプレフィックス、またはphpspec.yml(英語)構成ファイルで指定された spec_prefix および namespace 値に基づいて自動的に提案されます。

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

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

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

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

PHPSpecの仕様の作成方法については、PHPSpecのドキュメント(英語)を参照してください。テストを実行またはデバッグするには、次のいずれかを実行します。

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

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

    ps_test_frameworks_phpspec_launch_tests.png

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

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

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

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

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

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

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

  2. 開く実行/デバッグ構成: PHPSpecダイアログで、実行するシナリオを指定し、使用するPHP インタープリターを選択し、PHP実行可能ファイルに渡すオプションと引数を指定してその動作をカスタマイズします。

テスト結果の監視

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

ps_test_result_phpspec.png

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

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

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

最終更新日: 2020年3月27日

関連ページ:

ローカルPHPインタープリターの構成

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

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

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

Composer依存関係マネージャー

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

テスト・フレームワーク

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

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

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

プロジェクトでのPHP名前空間の構成

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