PhpStorm 2024.1 ヘルプ

Behat

PhpStorm を使用すると、Behat フレームワークを使用してシナリオを実行することによって、行動主導の開発を実践できます。現在 PhpStorm は Behat 3(英語)Behat 2(英語) バージョンとの統合をサポートします。

PhpStorm での Behat のネイティブサポートには以下が含まれます:

  • feature シナリオファイルと PHP シナリオ定義ファイルの認識とコーディング支援。

  • feature(英語) ファイルでの Gherkin 構文のサポート: FeatureScenarioGivenWhenThenAndBut キーワード。

  • 定義ファイルでの @given@when@then アノテーションの認識。

  • Behat 2.4 用の PCRE(英語) 規格および Behat 3.0 用の PCRE + に従って、正規表現を使用してシナリオとその定義間の対応を設定します。カブの表情(英語)も大歓迎です。

始める前に

ローカル PHP インタープリターを構成するリモート PHP インタープリターの構成に従って、PHP インタープリターが PHP ページの PhpStorm で設定されていることを確認してください。Behat 3 には PHP 5.5 以降が必要です。

Behat をダウンロードしてインストールする

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

Behat インストールパッケージを手動でダウンロードする

  • behat.pharBehat ダウンロードページ(英語)からダウンロードし、コンピューターに保存します。

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

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

Composer を使用して Behat をダウンロードしてインストールする

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

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

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

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

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

Gutter icon for behat settings in composer.json

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

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

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

Behat を自動的に設定する

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

  2. Composer と Behat をインストール

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

Behat configurations

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

Behat run/debug configurations

Behat を手動で設定する

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

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

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

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

      ps_settings_php_test_frameworks_behat_choose_php_interpreter.png
  2. Behat ライブラリ領域に、Behat 実行ファイルまたは behat.phar アーカイブの場所を指定します。

    Behat ディレクトリまたは phar ファイルへのパスフィールドの横にある the Reload button をクリックします。PhpStorm は Behat のバージョンを検出し、フィールドに表示します。

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

    デフォルトでは、Behat はプロジェクトルートフォルダーで behat.yml または behat.yml.dist 構成ファイルを検索します。カスタム構成ファイルを指定できます。

    • デフォルト構成ファイルチェックボックスをオフにすると、Behat はプロジェクトルートフォルダーの behat.yml または behat.yml.dist 構成ファイルを使用します。そのようなファイルが見つからない場合、テストの実行は失敗するため、構成ファイルを明示的に指定する方が信頼性が高い場合があります。

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

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

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

Behat の機能の書き方の詳細については、「Behat ドキュメント(英語)」を参照してください。

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

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

    ps_test_frameworks_behat_launch_tests.png

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

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

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

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

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

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

Behat テスト結果の監視

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

ps_test_result_behat.png

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

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

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

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

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

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

  2. 実行ツールバーで、 自動的に再実行をクリックします。

    ps_phpunit_enable-auto-test.png
  3. オプションで、コードの変更時にテストを開始するまでの遅延時間を設定します。これを行うには、実行ツールバーで をクリックし、 テストランナーの設定 | 自動テスト遅延の設定を選択します。

    ps_phpunit_set-auto-test-delay.png

関連ページ:

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

ローカル PHP インタープリターは、リモートホスト、Docker コンテナー、または Vagrant 仮想環境にインストールされるリモート PHP インタープリターとは対照的に、コンピューターにインストールされる PHP エンジンです。ローカル PHP インタープリターを構成するを押して設定を開き、を選択します。表示される PHP ページで、CLI インタープリターリストの横にあるをクリックします。表示される CLI インタープリターダイアログで、左側のペインのをクリックして、ポップアップメニュー...

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

リモート PHP インタープリターという用語は、リモートホストまたは仮想環境にインストールされた PHP エンジンを指します。リモート PHP インタープリターという用語は、コンピューターにインストールされているローカル PHP インタープリターの対義語として使用されます (ローカル PHP インタープリターの構成を参照)。SSH、Docker、Docker Compose、Vagrant、WSL を介してリモート PHP インタープリターにアクセスできます。SSH を使用すると、PHP インター...

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 インタープリターのいずれかを選択します:、右側のペインで、テストフレームワ...

テストランナータブ

テストランナータブは、テストセッションの開始時に実行ツールウィンドウで開き、同じツールバーボタンを備えています。実行ツールバーは、実行ツールウィンドウのツールバーとほとんど同じですが、テスト固有のボタンを備えています。左側のペインには、現在の実行 / デバッグ構成内のすべてのテストのツリービューが表示されます。ルートノードは、実行するように選択されたテストを表します。ネストされたノードは、テストスイートとテストケースの階層を表します。リーフノードは個々のテストを表します。各テストのステータスはア...