PHPSpec
PhpStorm を使用すると、PHPSpec ツールセットを使用して仕様を実行することで、ビヘイビア駆動開発を実践できます。
始める前に
ローカル PHP インタープリターを構成するおよびリモート PHP インタープリターの構成の説明に従って、PHP インタープリターが PHP ページの PhpStorm に設定されていることを確認してください。
Composer と一緒に PHPSpec をインストールする
開始する前に、Composer がマシンにインストールされ、Composer 依存関係マネージャーに従って現在のプロジェクトで初期化されていることを確認してください。
composer.json 内で、
phpspec/phpspec
依存関係レコードをrequire
キーまたはrequire-dev
キーに追加します。パッケージ名とバージョンのコード補完を取得するには、Ctrl+Space を押します。以下のいずれか 1 つを実行します:
エディターパネルの上部にあるインストールショートカットリンクをクリックします。
インストールされていない Composer パッケージインスペクションが有効になっている場合、PhpStorm は、現在インストールされていない宣言済みの依存関係をハイライトします。Alt+Enter を押して、特定の依存関係をインストールするか、すべての依存関係を一度にインストールするかを選択します。
PHPSpec 公式サイト(英語)からの PHPSpec のインストールの詳細を参照してください。
composer.json エディターのガター内のパッケージレコードの横にある をクリックすると、対応する設定ページが表示され、そこで PHPSpec を手動で構成できます。
PHPSpec を PhpStorm プロジェクトと統合する
ローカルの PHP インタープリターを使用する場合、PhpStorm は Codeception の初期構成を自動的に実行します。リモート PHP インタープリターの場合、手動の Codeception 構成が必要です。
PHPSpec を自動的に設定する
phpspec.yml または phpspec.yml.dist 構成ファイルをプロジェクトルートに保存します。
PhpStorm は、インストールされている PHPSpec 実行可能ファイル (プロジェクトに指定された PHPSpec 依存関係を持つ Composer が管理するサブプロジェクトがある場合は複数の実行可能ファイル) を検出し、インストールされている各 PHPSpec 実行可能ファイルごとにテストフレームワーク構成をテストフレームワークページに作成します。
phpspec.yml または phpspec.yml.dist 構成ファイルがプロジェクト (またはサブプロジェクト) ルートで自動的に検出された場合、または手動構成中に明示的に指定された場合、PhpStorm はそれぞれの PHPSpec の実行 / デバッグ構成も作成します。
PHPSpec を手動で設定する
設定ダイアログ(Ctrl+Alt+S)で、 に移動します。
開いているテストフレームワークページの中央ペインで をクリックし、リストから設定タイプを選択します。
ローカル構成では、デフォルトのプロジェクト PHP インタープリターが使用されます。詳細については、デフォルトのプロジェクト CLI インタープリターを参照してください。
リモート PHP インタープリターで PHPSpec を使用するには、表示されたダイアログで設定を 1 つ選択します:
PHPSpec 実行ファイルへのパスフィールドに、phpspec の場所を指定します。PHPSpec は必ずしも現在のプロジェクトルートにインストールする必要はありません。
「PHPSpec ディレクトリまたは phar ファイルへのパス」フィールドの横にある「 」をクリックします。PhpStorm は PHPSpec のバージョンを検出し、フィールドに表示します。
ローカルインタープリターに PHPSpec へのパスが指定されていない場合、PhpStorm は PHPSpec の完全なサポートを提供しません。たとえば、コード補完の提案を表示せず、参照を解決しません。
テストランナー領域で、シナリオの起動と実行に使用する構成 YML ファイルへのパスを設定します。
デフォルト構成ファイルチェックボックスをオフにして、PHPSpec にプロジェクトルートフォルダーの phpspec.yml または phpspec.yml.dist 設定ファイルを使用させます。そのようなファイルが見つからない場合、テストの実行は失敗します。構成ファイルを明示的に指定する方が信頼性が高くなります。
すべての PHPSpec 実行 / デバッグ構成でデフォルトの構成ファイルとして使用される YML ファイルへのパスを指定するには、デフォルト構成ファイルチェックボックスを選択します。
ローカル構成では、接頭辞 ('spec_prefix' ) : 読み取り専用フィールドに仕様の名前空間接頭辞が表示されます。PhpStorm は、デフォルト構成ファイルフィールドで指定された構成ファイルから
spec_prefix
を検出します。デフォルト値は spec です。詳細については、「PHPSpec の設定: PSR-4(英語) および PHPSpec の設定: スペックとソースの場所(英語)」を参照してください。
クラスの PHPSpec テストを生成する
次のいずれかを実行して新しい PHP テストを作成するダイアログを開きます。
PHP テスト | PHPSpec のスペックを選択します。
に進みます。次に、コンテキストメニューからプロジェクトツールウィンドウで、Alt+Insert を押すか、テストする PHP クラスを右クリックし、新規 | PHP テスト | PHPSpec のスペックを選択します。
テストする PHP クラスのエディターで、クラスの定義にキャレットを置きます。次に、Alt+Enter を押して、ポップアップメニューから新規テストの作成を選択します。このようにして、単一の PHP ファイル内の複数のクラスの間で定義された PHP クラスのテストを生成できます。
特定のメソッドのテストを作成するには、メソッド宣言内にキャレットを置きます。選択したメソッドは、新しい PHP テストを作成するダイアログのメソッドのリストから自動的に選択されます。
開いた新しい PHP テストを作成するダイアログで、生成されたテストのパラメーターを指定します。
テストファイルテンプレート : PhpStorm がテストクラスを生成するテンプレート。リストから PHPSpec が選択されていることを確認します。
名前 : テストクラスの名前。PhpStorm は、本番クラス名から <production class>Spec.php という名前を自動的に作成します。
ディレクトリ : テストクラスファイルのフォルダー。これは、本番クラスの格納ディレクトリと名前空間、構成されたテストソースルートとその PSR-4 パッケージ接頭辞、または phpspec.yml(英語) 構成ファイルで指定された
src_path
値に基づいて自動的に提案されます。自動フォルダー提案が正しく機能するには、テストスイートと本番クラスの名前空間が一致している必要があることに注意してください。別のフォルダーを指定するには、ディレクトリフィールドの横にある をクリックし、該当するフォルダーを選択します。
名前空間 : テストクラスが属する名前空間。これは、本番クラスの格納ディレクトリと名前空間、構成されたテストソースのルートとその psr-4 パッケージ接頭辞、または phpspec.yml(英語) 構成ファイルで指定された
spec_prefix
およびnamespace
の値に基づいて自動的に提案されます。メンバー : テストメソッドスタブを生成する製品クラスメソッドのリスト。必要な製品クラスメソッドの横にあるチェックボックスをオンにします。親クラスから継承されたメソッドを含めるには、継承メソッドの表示チェックボックスをオンにします。
PhpStorm はテストメソッドの名前を
test<production method>
として自動的に作成します。テストメソッドスタブの生成に使用されるコードテンプレートは、ファイルおよびコードテンプレート設定ページのコードタブでカスタマイズできます。
テストが作成されたら、移動 | テスト対象に移動を選択して実稼働クラスに戻ることができます。詳細については、「テストとそのテスト対象の間を移動する」を参照してください。
PHPSpec テストの実行とデバッグ
PHPSpec のスペックの書き方の詳細については、「PHPSpec のドキュメント(英語)」を参照してください。テストを実行またはデバッグするには、次のいずれかを実行します。
PHPSpec テストを実行またはデバッグする
プロジェクトツールウィンドウで、テストを実行するファイルまたはフォルダーを選択し、選択したコンテキストメニューから実行 '<file or folder>' またはデバッグ '<file or folder>' を選択します。
PhpStorm はデフォルトの実行構成を生成し、それを使用して実行またはデバッグテストセッションを開始します。
自動的に生成されたデフォルト設定を保存する
テストセッションが終了したら、実行ウィジェットのそれぞれの実行 / デバッグ構成のコンテキストメニューから構成の保存を選択します。
以前に保存された実行 / デバッグ構成によってテストを実行またはデバッグする
ツールバーのリストから必要な PHPSpec 設定を選択し、 または をクリックします。
カスタム実行 / デバッグ構成を作成する
プロジェクトツールウィンドウで、実行するテストが含まれるファイルまたはフォルダーを選択し、コンテキストメニューから実行構成の作成を選択します。あるいは、メインメニューで に移動し、 をクリックしてリストから PHPSpec を選択します。
開く PHPSpec ダイアログで、実行するシナリオを指定し、使用する PHP インタープリターを選択し、PHP 実行可能ファイルに渡すオプションと引数を指定してその動作をカスタマイズします。
テスト結果を監視する
PhpStorm は実行ツールウィンドウのテストランナータブにおけるテスト実行結果を示します。
このタブは大きく 2 つのエリアに分かれています。
左側の領域では、すべての単体テストをドリルダウンして、成功したテストと失敗したテストを確認できます。テストのフィルタリング、結果のエクスポート、コンテキストメニューコマンドを使用して特定のテストを実行したりソースコードに移動したりできます。
右側の領域には、生の PHPSpec 出力が表示されます。
関連ページ:
ローカル PHP インタープリターを構成する
ローカル PHP インタープリターは、リモートホスト、Docker コンテナー、または Vagrant 仮想環境にインストールされるリモート PHP インタープリターとは異なり、コンピューターにインストールされる PHP エンジンです。ローカル PHP インタープリターを構成するを押して設定を開き、を選択します。表示される PHP ページで、CLI インタープリターリストの横にあるをクリックします。表示される CLI インタープリターダイアログで、左側のペインのをクリックして、ポップアップメニューか...
リモート PHP インタープリターの構成
リモート PHP インタープリターは、リモートホストまたは仮想環境にインストールされる PHP エンジンです。リモート PHP インタープリターという用語は、ローカルコンピューターにインストールされるローカル PHP インタープリターの反対です。PhpStorm では、Docker コンテナー内、Docker Compose、Vagrant、WSL 経由で、SSH 経由でリモート PHP インタープリターへのアクセスを構成できます。SSH 構成タイプを使用すると、リモートホスト上のサーバーにインスト...
PHP
このページとこのノードのすべてのページは、PHP プラグインが有効な場合にのみ使用できます。PHP プラグインは PhpStorm にバンドルされており、デフォルトで有効になります。プラグインが無効になっている場合は、プラグインのマッピングの説明に従ってで有効にします。このページを使用して、使用可能な PHP インタープリターの 1 つを選択して、プロジェクトでの PHP 開発および単体テストのサポートを構成します。PHP 言語レベルこのリストでは、コーディング支援を受ける PHP 機能の範囲を指定...
Composer 依存関係マネージャー
PhpStorm は Composer 依存関係マネージャーと統合されています。これにより、Packagist またはカスタムリポジトリからのパッケージをプロジェクトの依存関係として宣言し、IDE から管理できます。PhpStorm は以下を提供します。一般的な Composer コマンド (init、install、update) と、その他の Composer コマンドを実行するための専用ユーザーインターフェース。コマンド出力は Composer ログコンソールに表示されます。PhpStorm プロ...
テストフレームワーク
このページを使用して、現在のプロジェクトで PHP テストフレームワークを PhpStorm と統合します。PhpStorm を使用すると、PHPUnit、Behat、PHPSpec、Codeception、Pest テストを実行およびデバッグできます。プロジェクトでテストフレームワークを設定するをクリックし、テストフレームワークとそれを実行する PHP インタープリターを選択します。リモートの設定では、設定済みの PHP インタープリターのいずれかを選択します:、右側のペインで、テストフレームワ...
プロジェクトで PHP 名前空間を構成する
PhpStorm は、PHP の名前空間名をディレクトリ構造にマップする必要があることを規定する PSR-0/PSR-4 オートロード標準をサポートします。PhpStorm でソースルートタイプでマークされたディレクトリはネームスペースのルートとみなされ、その下に作成されるすべてのディレクトリは別個のネームスペースとみなされます。ソースルートタイプが設定されている場合、新しいクラス / インターフェースなどを作成するときに、PhpStorm によって名前空間名が自動補完されます。このディレクトリ内に...