[PHP]IntelliJ IDEA(PHPStorm)にてDocker環境上のPHPUnitを実行する
なに
- IDEAでPHPUnitを実行できるようする
なぜ
- コンソール上で
./vendor/bin/phpunit xxxxって打たなくてよくなる- いちいちDocker入らなくてよくなる
- 結果をIDEA上でスグに確認できる
どのように
IntelliJ IDEA
プラグインインストール
- PHP interpreter
- PHP Docker
上記プラグインをインストール
-
Settings→Plugins→Marketplace
CLI interpreter の設定
-
Settings→Languages & Frameworks→PHP→…を選択

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

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

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

-
Configuration files:のフォルダアイコンを押下 -
+ボタンを押下してPHPUnitが動作するDocker環境を構築するdocker-compose.ymlをフルパスで指定する

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

-
OKを押下し作成を完了する -
最後に
LifecycleのConnect to existing containerにチェックをいれてOKで作成完了する-
Always start ...にするとPHPUnit実行毎に専用Dockerコンテナを作成されてしまうため
-
Test Frameworks の設定
-
Settings→Languages & Frameworks→PHP→Test Frameworksを選択 -
+ボタンを押下しinterpretersから先ほど作成したphp({version})を選択しOKを押下

-
Path mappings:のフォルダアイコンを押下 -
+を押下 -
Local Pathに テスト実行対象プロジェクトのルートパスをフルパスで指定する- ex) Macの場合 :
/Users/{user}/projects/foo-bar-api
- ex) Macの場合 :
-
Remote Pathに Docker側での上記プロジェクトのルートパスをフルパスで指定する- ex)
/var/www/foo-bar-api
- ex)
-
全ての入力完了したら
OKを押下

-
Use Composer autoloaderにチェックを入れてDocker側のautoload.phpへのフルパスを指定する- ex)
/var/www/foo-bar-api/vendor/autoload.php
- ex)
-
Test RunnerのDefault configration file:にDocker側のphpunit.xmlへのフルパスを指定する/var/www/foo-bar-api/phpunit.xml
-
全ての入力完了したら
OKを押下

テスト実行
ナビゲーションから
-
テストしたい対象ファイルを選択して右クリックし
Run 'xxxxTest.php'を選択- もちろん
ディレクトリを選択しての実行もOK- ex)
Run 'Models'
- ex)
- もちろん
-
下部コンソールに実行結果が表示される
ファイル開いた状態から
- 右上にある緑の再生ボタンを押下する
- 下部コンソールに実行結果が表示される
特定メソッドのみ
- ファイルを開いて特定のメソッドへ移動
- メソッド横に再生ボタンが表示されいてるので押下する
- 下部コンソールに実行結果が表示される
いかがでしたでしょうか?
IDEA上で実行確認が完了するため作業効率がググっと上がります
オススメです
Discussion