[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