PHPUnitをPhpStormで実行する with Laradock


PhpStormでPHPUnitを実行できるように設定したので、その手順をまとめて見ました。
ちなみに、Laradockで環境を構築していることを前提としています。

Xdebugのインストール

.env(laradcok)を編集します

- WORKSPACE_INSTALL_XDEBUG=false
+ WORKSPACE_INSTALL_XDEBUG=true

- PHP_FPM_INSTALL_XDEBUG=false
+ PHP_FPM_INSTALL_XDEBUG=true

xdebug.iniの編集

workspace/xdebug.ini php-fpm/xdebug.ini の設定を書き換える

- xdebug.remote_host=dockerhost
+ xdebug.remote_host=host.docker.internal
- xdebug.remote_connect_back=1
+ xdebug.remote_connect_back=0
- xdebug.remote_port=9000
+ xdebug.remote_port=9001

- xdebug.remote_autostart=0
+ xdebug.remote_autostart=1
- xdebug.remote_enable=0
+ xdebug.remote_enable=1
- xdebug.cli_color=0
+ xdebug.cli_color=1

dockerイメージを再ビルド

docker-compose build workspace php-fpm

これで、xdebug のインストールが完了しました。

PhpStormでの設定

Docker の設定

Preferences > Build, Execution, Deployment > Docker+ をクリックする。

Name : お好きな名前でOKです。

Connect to Docker daemon with : Docker for Mac

Connection successful と表示されればOKです。

Interpreterを指定する

Preferences | Languages & Frameworks | PHP にある ・・・ をクリックする。

そして、こんな画面が出てきたら左上の + をクリックしてください。

From Docker, Vagrant, VM, Remote... を選択してください。
↓のウィンドウが表示されたら、Docker を選択して、Server には先程作成した、Laradock Dockerを選択してください。(Image name と PHP interpreter pathは自動で見つけてきてくれます)

そして、OKを押すと、下のウィンドウが表示されます。

内容に間違いがなかったら、OKを押してください。

このままだと、うまく動作しないのでパスを変更します。

Docker container 欄の右側にあるフォルダアイコンをクリックしてください。

Container path の欄に /var/www/src と入力してください。
(ペンのアイコンをクリックしたら編集できます)

PHPUnitの設定

Preferences > Languages & Frameworks > PHP > Test Frameworks で + をクリックして、PHPUnit By Remote Interpreter を選択してください。

Interpreter には先ほど作成したものを選択してください。(僕の場合はlaradock-workspace です)

PHPUnit libraryUse Composer autoloader を選択する。
Path to script にはworkspaceコンテナ内の autoload.php を指定する。
versionが表示されたらOKです。

次に メニューバー > Run > Edit Configrations をクリックしてください。

Defined in the configuration file を選択して、Use alternative configuration file にチェックを入れて、ホストのlaravel projrct内にある phpunit.xml を指定する。

これで、PhpStormでテストを実行することができるようになりました!

まとめ

Testクラスで、control + r or Command + r を押すとファイル内の全てのテストメソッドが実行されます。
特定のテストメソッドを実行したい場合は、control + option + r を押して、メソッド名を選択すると実行できると思います。