PhpStorm 2021.1 ヘルプ

Codeception

PhpStorm は、Codeception テストフレームワーク(英語)バージョン 2.2.0 以降でユニット機能、および受け入れテストを実行するためのサポートを提供します。

始める前に

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

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

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

Codeception を手動でダウンロードしてインストールする

  • codeception.pharCodeception インストールページ(英語)からダウンロードし、Codeception が後で使用されるプロジェクトのルートに保存します。

    codeception.phar を別の場所に保存してインクルードパスとして設定することもできます。どちらの場合も、PhpStorm は codeception.phar を索引付けに含めるため、Codeception クラスへの参照を正常に解決し、それによって完全なコーディング支援を提供します。

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

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

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

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

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

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

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

Gutter icon for codeception settings in composer.json

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

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

codeception.yml 設定ファイルを生成する

Codeception をインストールしたら、codeception.yml 設定ファイルを生成してプロジェクトで初期化する必要があります。

  • ビルトイン PhpStorm ターミナル Alt+F12 を開き、コマンドプロンプトで、インストールモードと現在のオペレーティングシステムに応じて、次のコマンドのいずれかを入力します。

    • プロジェクトに codeception.phar をインストールした場合は、Windows の場合は php codecept.phar bootstrap、Linux の場合は macOS または codecept bootstrap と入力します。

    • Composer を介して Codeception をグローバルにインストールした場合は、すべてのプラットフォームで codecept bootstrap と入力します。

Codeception を自動的に設定する

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

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

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

Codeception を手動で設定する

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

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

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

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

      ps_settings_php_test_frameworks_codeception_choose_php_interpreter.png
  2. Codeception ライブラリ領域で、ターゲット環境内の Codeception 実行可能ファイルまたは codeception.phar アーカイブの場所を指定します。例: Composer から Codeception をインストールした場合、実行可能ファイルは vendor/bin/codecept に保存されます。Codeception ディレクトリまたは phar ファイルへのパスフィールドの横にある the Reload button をクリックします。PhpStorm は Codeception のバージョンを検出し、それをフィールドに表示します。

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

    デフォルトでは、Codeception はプロジェクトのルートフォルダー内の codeception.yml 設定ファイルを探します。カスタム構成ファイルを指定できます。

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

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

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

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

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

    • メインメニューからファイル | 新規を選択します。次に、コンテキストメニューから PHP テスト | Codeception ユニットテストまたは PHP テスト | Codeception 機能テストを選択します。

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

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

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

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

    the Create new codeception test dialog

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

    • テストファイルテンプレート、つまり PhpStorm がテストクラスを生成するためのテンプレート。テストファイルテンプレートリストで Codeception ユニットまたは Codeception 機能性が選択されていることを確認してください。

    • テストクラスの名前。PhpStorm は、本番クラス名から自動的に名前を <production class>Test.phpCodeception ユニットテストの場合)または <production class>Cest.phpCodeception 機能テストの場合)として作成します。

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

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

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

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

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

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

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

Codeception テストの記述については、ユニットテスト(英語)受け入れテスト(英語)機能テスト(英語)を参照してください。

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

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

    ps_test_frameworks_codeception_launch_tests.png

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

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

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

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

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

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

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

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

テスト結果を監視する

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

ps_test_result_codeception.png

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

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

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

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

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

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

  2. テストランナータブで、ツールバーの the Toggle Auto-Test button トグルボタンを押します。

    ps_phpunit_enable-auto-test.png
  3. 必要に応じて、the Settings button ボタンをクリックして、コードの変更時にテストを開始するための遅延時間を設定します。

    ps_phpunit_set-auto-test-delay.png

関連ページ:

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

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

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

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

Composer 依存関係マネージャー | PhpStorm

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

テストフレームワーク | PhpStorm

このページを使用して、PHP 固有のテストフレームワークと現在のプロジェクトの PhpStorm を統合します。PhpStorm を使用すると、PHPUnit、Behat、Codeception、PHPSpec テストを実行およびデバッグできます。ページは 2 つのペインで構成されています。中央ペインには、異なるインタープリター用のテストフレームワークの既存の設定が表示されます。右側のペインの内容は、テストフレームワークと選択されたインタープリターのタイプによって異なります。プロジェクトでテストフ...

Codeception | PhpStorm

このダイアログは、PHP と Codeception プラグインが有効になっている場合にのみ利用可能です。プラグインはデフォルトで有効になっています。プラグインが無効になっている場合は、プラグインを管理する説明に従ってプラグインページで有効にします。このダイアログを使用して、Codeception フレームワークを使用して PHP アプリケーションの単体テストを実行およびデバッグするために使用される構成を作成します。始める前に:Codeception の説明に従って、コンピューターに Codeceptio...

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

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