PhpStorm 2020.3 ヘルプ

PHP テストを生成する

テスト対象の PHP クラスに基づいて、テストクラススタブを自動的に生成できます。PhpStorm は、PHPUnitCodeceptionPHPSpec テストフレームワークにこの機能を提供します。Behat フレームワークを使用している場合、手動でテストを作成する必要があります。

テストクラスは、本番クラス名から派生した名前を持つ PHP クラスです。例: テストするクラスが MyClass.php の場合、PhpStorm は対応する PHPUnit テストクラスの名前を <MyClass>Test.php として自動的に作成します。

PhpStorm は、個別のファイルで定義されているクラスと、単一の PHP ファイル内で定義されているクラスのテストを生成できます。後者の場合、生成されたテストクラスごとに、PhpStorm は個別のファイルを作成します。

テストを作成したら、テストとそのサブジェクト間をすばやく移動できます。

新しいテストを追加する

  1. 以下のいずれかを行います。

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

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

    • メインメニューからファイル | 新規 | PHP テスト | <テストフレームワーク> テストを選択します。

    • プロジェクトツールウィンドウで Alt+Insert を押すか、テストする PHP クラスを右クリックして、選択コンテキストメニューから新規 | PHP テスト | <テストフレームワーク> テストを選択します。

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

    create new php test phpunit dialog
  2. 新しい PHP テストを作成するダイアログで、以下を指定します。

    1. テストクラスの生成に基づくテストファイルテンプレート。PhpStorm は、サポートされているテストフレームワーク PHPUnitCodeceptionPHPSpec を使用して、テストクラスを生成するための組み込みのファイルテンプレートを提供します。

    2. テストクラス名前。PhpStorm は、選択したテストフレームワークの命名規則に従って、本番クラス名から自動的に名前を作成します。例: テストするクラスが MyClass.php の場合、PhpStorm は PHPUnit テストクラスの名前を <MyClass>Test.php として自動的に作成します。

    3. テストクラスのフォルダー。本番クラスを含むディレクトリと名前空間、構成済みのテストソースルートとその psr-4 パッケージプレフィックス、または対応するテストフレームワークの構成ファイルで提供される値に基づいて自動的に提案されます。パス補完を使用するには、Ctrl+Space を押してリストからパスを選択します。

    4. テストクラスが属する名前空間。PhpStorm は、構成された PSR パッケージのプレフィックスおよびフレームワーク固有の構成ファイルで指定された値に基づいて、名前空間を自動的に補完させることができます。名前空間補完を使用するには、Ctrl+Space を押して、リストから関連する名前空間を選択します。

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

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

テストとそのテスト対象の間を移動する

  1. エディターでテストクラスまたはテスト対象クラスを開きます。

  2. エディターのコンテキストメニューから移動 | テスト対象を選択するか、Ctrl+Shift+T を押します。

    このクラスのテストが 1 つしかない場合、IDE はすぐにそのクラスに移動します。それ以外の場合は、ポップアップから必要なテストを選択するか、新しいテストを作成するように求められます。

    Navigate to test from test subject

PHP のコンテキストでは、PHPUnit および Codeception テストを操作するときに、@covers(英語) アノテーションを使用してテストクラスまたはメソッドとそれらのテスト対象間のリンクを維持できます。

このようにして、たとえ彼らの名前が PHPUnit の命名規則(英語)に従わなくても、テストとテスト対象の間をナビゲートすることは可能でしょう:

class Person { public function getAge() {} } /** @covers Person */ class TestForPersonClass extends TestCase { /** @covers Person::getAge */ public function testCorrectAgeIsReturned() {} }

関連ページ:

PHPUnit

PhpStorm は、PHPUnit テストフレームワークとの統合による PHP アプリケーションの単体テストをサポートしています。始める前に:ローカル PHP インタープリターを構成するおよびリモート PHP インタープリターの構成の説明に従って、PHP インタープリターが PHP ページの PhpStorm に設定されていることを確認してください。PHPUnit をダウンロードしてインストールする:開始する前に、Composer がマシンにインストールされ、Composer 依存関係マネージ...

ファイルテンプレート

ファイルテンプレートは、作成する新しいファイルのデフォルトコンテンツの仕様です。作成するファイルのタイプに応じて、テンプレートは、そのタイプのすべてのファイルで期待される初期コードとフォーマットを提供します(業界または言語の標準、企業ポリシー、またはその他の理由による)。PhpStorm は、新しいファイルを作成するときに提案される、サポートされているすべてのファイルタイプの定義済みテンプレートを提供します。ファイルテンプレートを管理および構成するには、設定 / 環境設定のエディター | ファイ...

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

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

プロジェクトで PHP 名前空間を構成する

PhpStorm には、プロジェクトルートフォルダーがパッケージおよび名前空間のルートでもあることを指定する構成可能な規則が付属しています。つまり、プロジェクトのルートフォルダーはデフォルトでソースとしてマークされ、そに作成されるすべてのディレクトリは個別のネームスペースと見なされます。これは、オートローディングスタンダードとも呼ばれる PSR-0 に準拠しています。オートローディングスタンダードは、PHP のクラスと名前空間がディレクトリとファイル構造に一致すること、およびその逆を規定しています。...

テストを実行する

単一テストの実行テストを開始する前に特定のアクションを必要とせず、追加のオプションを構成したくない場合は、次のオプションを使用してテストを実行できます。キャレットをテストクラスに配置して、そのクラスのすべてのテストを実行するか、テストメソッドに配置し、を押します。または、テストクラスまたはテストメソッドの横にあるガターアイコンをクリックします。ガターアイコンは、テストの状態に応じて変化します。ガターアイコンは、新しいテストをマークします。ガターアイコンは、成功したテストを示します。ガターアイコ