💡

[PHP]IntelliJ IDEA(PHPStorm)にてDocker環境上のPHPUnitを実行する

2023/09/01に公開

なに

  • IDEAでPHPUnitを実行できるようする

なぜ

  • コンソール上で ./vendor/bin/phpunit xxxx って打たなくてよくなる
    • いちいちDocker入らなくてよくなる
  • 結果をIDEA上でスグに確認できる

どのように

IntelliJ IDEA

プラグインインストール

  • PHP interpreter
  • PHP Docker
    上記プラグインをインストール
  1. SettingsPluginsMarketplace
    上記プラグインをインストール

CLI interpreter の設定

  1. SettingsLanguages & FrameworksPHP を選択

  2. + ボタンを押下しメニューの From Docker, Vagrant, VM, WSL, Remote... を選択

  3. New... ボタンを押下してDocker設定を追加する

  4. 名前は任意の名前でOKで Docker for Mac(Windowsは適宜読み替えて) を選択してOKを押下

  5. Configuration files: のフォルダアイコンを押下

  6. + ボタンを押下してPHPUnitが動作するDocker環境を構築する docker-compose.yml をフルパスで指定する

  7. Service からPHP実行環境のコンテナを指定する

  8. OK を押下し作成を完了する

  9. 最後に LifecycleConnect to existing container にチェックをいれて OK で作成完了する

    1. Always start ... にするとPHPUnit実行毎に専用Dockerコンテナを作成されてしまうため

Test Frameworks の設定

  1. SettingsLanguages & FrameworksPHPTest Frameworks を選択

  2. + ボタンを押下し interpreters から先ほど作成した php({version}) を選択し OK を押下

  3. Path mappings: のフォルダアイコンを押下

  4. + を押下

  5. Local Path に テスト実行対象プロジェクトのルートパスをフルパスで指定する

    • ex) Macの場合 : /Users/{user}/projects/foo-bar-api
  6. Remote Path に Docker側での上記プロジェクトのルートパスをフルパスで指定する

    • ex) /var/www/foo-bar-api
  7. 全ての入力完了したらOK を押下

  8. Use Composer autoloader にチェックを入れてDocker側の autoload.php へのフルパスを指定する

    1. ex) /var/www/foo-bar-api/vendor/autoload.php
  9. Test RunnerDefault configration file: にDocker側の phpunit.xml へのフルパスを指定する

    1. /var/www/foo-bar-api/phpunit.xml
  10. 全ての入力完了したらOK を押下

テスト実行

ナビゲーションから

  1. テストしたい対象ファイルを選択して右クリックし Run 'xxxxTest.php' を選択

    • もちろん ディレクトリ を選択しての実行もOK
      • ex) Run 'Models'
  2. 下部コンソールに実行結果が表示される

ファイル開いた状態から

  1. 右上にある緑の再生ボタンを押下する
  2. 下部コンソールに実行結果が表示される

特定メソッドのみ

  1. ファイルを開いて特定のメソッドへ移動
  2. メソッド横に再生ボタンが表示されいてるので押下する
  3. 下部コンソールに実行結果が表示される

いかがでしたでしょうか?
IDEA上で実行確認が完了するため作業効率がググっと上がります
オススメです

株式会社THIRD エンジニアブログ

Discussion