PhpStormからLaradockのPHPUnit実行できるようにすると捗る

## これはなに

PhpStormからLaradock上でPHPUnitを実行する方法を書いてます。
スクリーンショットたくさん撮りました。

## こんな感じでテストを実行できます

<img width="1048" alt="スクリーンショット 2019-09-19 20.08.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/7ce05fc9-0e65-8833-ab8c-73ade1823139.png">

### メリット
- ショートカットキーですぐテストを実行できる
- メソッド単位、ファイル単位ですぐテストを実行できる
- CLIより結果が見やすい
- エラーがあったテストコードやエラー個所にすぐジャンプできる

## 前提

Laradock上でLaravelが動き、ブラウザで閲覧できる状況。

# 設定手順

## CLI Interpreter に Laradockを追加

CLI Interpreterとは、 PHPの実行環境設定のこと。
Macに入ってるPHPを動かすのか、Laradockなのか、別のサーバなのかを設定します。

PhpStormのPreferenceを開く
<img width="272" alt="スクリーンショット 2019-09-19 19.58.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/1a38f9f2-73b2-d311-5c48-084182461250.png">

`Preferences > Language & Frameworks > PHP`を開く

<img width="987" alt="スクリーンショット 2019-09-19 19.58.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/fac7e430-3681-3f8d-208f-d51eb07da9ea.png">

[...]ボタンをクリック
<img width="987" alt="スクリーンショット 2019-09-19 19.58.35のコピー.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/e13957ca-b932-76b0-b933-1dd0aedb5081.png">

[+]ボタンをクリック
<img width="822" alt="スクリーンショット 2019-09-19 19.58.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/75872369-fe0f-2fc5-3c8d-88d882e5122f.png">

[From Docker, Vagrant, VM, Remote...]をクリック
<img width="298" alt="スクリーンショット 2019-09-19 19.58.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/c7235446-0220-75db-2814-19a53a668539.png">

画面のように設定し、[OK]をクリックする。
<img width="634" alt="スクリーンショット 2019-09-19 20.00.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/210605b6-a891-04d5-499c-b30088710600.png">

- Docker Compose : チェックする
- Server : Docker
- Configration file(s) : Laradockのフォルダのdocker-compose.ymlを選択する
- Service : workspace
- Enviroment variables : なし (何に使うか不明)
- PHP interpreter path : php

次の画面が表示されるので、以下のように設定し、OKをクリックする
  
<img width="927" alt="スクリーンショット 2019-09-19 20.02.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/5d6aee32-4494-56ae-952e-6527e60ab317.png">

- Name : laradock-workspace (お好みで設定する)
- Service : workspace 
  - (PhpStormのバグなのか、この画面を表示するたびに別な項目に変えられてしまうので、忘れずworkspaceを設定する)
- Lifecycle : Connect to existing container 
  - (Always start...にすると毎度Dockerが再起動して遅かった記憶がある)


## Path Mapping

Laravelのプロジェクトフォルダと、Docker内のフォルダを関連付けします。

Path mappingsのファイルアイコンをクリック
<img width="987" alt="スクリーンショット 2019-09-19 20.02.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/30e5c56e-6ed5-52f5-61a9-847a9352b2e5.png">


LocalPathにはLaravelのプロジェクトフォルダ、RemotePathに`/var/www`を入れて OK
<img width="473" alt="スクリーンショット 2019-09-19 20.03.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/bcd94cba-1f43-02c1-41db-5e840f9524af.png">

ここまで設定するとこうなります。
<img width="984" alt="スクリーンショット 2019-09-19 20.03.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/1daf2588-de01-cb5c-6025-c156a3aa9157.png">

あともう少しです。

## Test Frameworks の追加

PHPUnitを実行するための環境を設定する。

` Preferences > Language & Frameworks > PHP > Test Frameworks`

<img width="984" alt="スクリーンショット 2019-09-19 20.04.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/4433b476-6f2a-87e9-6a55-120e45e4335d.png">

最初からLocalという設定が入っていたが、今回は関係ない。

[+]ボタンで[PHPUnit by Remote Interpreter]をクリック
<img width="980" alt="スクリーンショット 2019-09-19 20.05.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/fa68e103-92be-ad28-a98a-8092f1d78ebf.png">

先ほど追加したCLI Interpreterを選択する
<img width="567" alt="スクリーンショット 2019-09-19 20.05.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/9235df86-46fe-5d92-5832-e4d4091676cd.png">

以下のように設定されていることを確認し、OKをクリックする。

<img width="985" alt="スクリーンショット 2019-09-19 20.05.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/b88e0ccb-3d1f-b608-3572-66842ff12909.png">

ここまでの設定がうまくいっている方は、
PHPUnitがロードされ、PHPUnit versionが無事表示されるでしょう。
もしそうでなかったら、何かがおかしいです！

これで完了です。

## テストを実行する

お好みのテストファイルを開き、
テストを実行します。
`^ + R` または  コード脇の[▶︎] ボタンをクリックとかで実行できます。

<img width="1048" alt="スクリーンショット 2019-09-19 20.08.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268801/7ce05fc9-0e65-8833-ab8c-73ade1823139.png">

PhpStorm上でテストが実行できました！


## トラブルシュート


何度かうまくいかなかった記憶があるので、
読者のみなさま、つまづいたところがあったら教えてください。


## 参考

- [PhpStormからLaradockのテストを実行する
](https://qiita.com/rytskywlkr/items/052b2802689f156c263d)
  - PhpStormのバージョンが違うせいかテストが実行できなかった。（操作ミスの可能性もある）


## バージョン情報

- PhpStorm 2019.2.1
- Laradock v8.0