PhpStorm 2020.2ヘルプ

PHPテストを生成する

テスト対象のPHPクラスに基づいて、テストクラススタブを自動的に生成できます。PhpStormは、PHPUnitCodeception、およびPHPSpecテストフレームワークにこの機能を提供します。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は、サポートされているテストフレームワークPHPUnitCodeception、およびPHPSpecを使用して、テストクラスを生成するための組み込みのファイルテンプレートを提供します。

    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を押します。

    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() {} }
最終更新日: 2020年8月06日

関連ページ:

PHPUnit

PhpStormは、PHPUnitテストフレームワークとの統合によるPHPアプリケーションの単体テストをサポートしています。始める前に:ローカルPHPインタープリターを構成するおよびリモート PHP インタープリターの構成の説明に従って、PHPインタープリターがPHPページのPhpStormに設定さ...

Codeception

PhpStormは、Codeceptionテストフレームワークバージョン2.2.0以降でユニット、機能、および受け入れテストを実行するためのサポートを提供します。始める前に:ローカルPHPインタープリターを構成するおよびリモート PHP インタープリターの構成の説明に従って、PHPインタープリターが...

PHPSpec

PhpStormを使用すると、PHPSpecツールセットを使用して仕様を実行することで、動作駆動型開発を実践できます。始める前に:ローカルPHPインタープリターを構成するおよびリモート PHP インタープリターの構成の説明に従って、PHPインタープリターがPHPページのPhpStormに設定されてい...

Behat

PhpStormを使用すると、Behatフレームワークを使用してシナリオを実行することによって、行動主導の開発を実践できます。現在PhpStormはBehat 3とBehat 2バージョンとの統合をサポートします。PhpStormでのBehatのネイティブサポートには以下が含まれます:フィーチャーシ...

ファイル・テンプレート

ファイルテンプレートは、新しいファイルを作成するときに生成されるデフォルトのコンテンツの仕様です。作成しているファイルのタイプに応じて、テンプレートは、そのタイプのすべてのファイル(業界標準、企業ポリシー、またはその他の理由による)に含まれると予想される初期コードとフォーマットを提供します。PhpS...

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

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