Edited at

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です。

phpstorm_phpunit1.png


Interpreterを指定する

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

phpstorm_phpunit1.png

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

phpstorm_phpunit3.png

From Docker, Vagrant, VM, Remote... を選択してください。

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

phpstorm_phpunit4.png

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

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

phpstorm_phpunit5.png

phpstorm_phpunit6.png

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

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

phpstorm_phpunit7.png

Container path の欄に /var/www/src と入力してください。

(ペンのアイコンをクリックしたら編集できます)


PHPUnitの設定

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

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

phpstorm_phpunit8.png

PHPUnit libraryUse Composer autoloader を選択する。

Path to script にはworkspaceコンテナ内の autoload.php を指定する。

versionが表示されたらOKです。

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

phpstorm_phpunit9.png

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

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

phpstorm_phpunit10.png


まとめ

Testクラスで、control + r or Command + r を押すとファイル内の全てのテストメソッドが実行されます。

特定のテストメソッドを実行したい場合は、control + option + r を押して、メソッド名を選択すると実行できると思います。