PHPStorm で PHPUnit のテストをステップ実行する 2017年3月版

#はじめに
以下のような環境で PHPUnit をステップ実行する手順を記載します。似たような情報はいくつか見つかったのですが、ローカルとリモートのフォルダ構成が異なる場合に設定が必要な `Path Mappings` のところが書いてなかったり、UI が少し違っていたりました。誰かのお役に立てば幸いです。

- macOS Sierra
- PHPSTORM 2016.3.2
- PHP 7.1.1
- PHPUnit 5.7.9
- vagrant (リモートデバッグ)

#手順


1. `Preferences` > `Build, Execution, Deployment` > `Deploy` で `+` を押します。`Add Server` 画面で `name` を vagrant、`type` を `SFTP` に設定して `OK`。

1. `Connection` タブに vagrant との接続設定を書きます。 `Connection` タブはこんな感じになると思います。
<img width="1072" alt="スクリーンショット 2017-03-02 15.36.03.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/11f80d15-de6f-d7e3-11a6-eb68fe49e4cc.png">

1. `Mapping` タブはこんな感じになると思います。
<img width="1072" alt="スクリーンショット 2017-03-02 15.41.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/005f31c2-cc6b-ef80-dcce-b585b93c11e6.png">

1. `Preferences` の `Languages & Freamworks` > `PHP` に `CLI Interpreter` という項目があり、この `...` を押します。`CLI Interpreters` という画面がポップアップするので、`+` を押して `Remote...` を追加します。Vagrant を選び、接続情報を入力し、`OK`。
<img width="648" alt="スクリーンショット 2017-03-02 15.46.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/aca5fd3f-13b8-07be-35c4-04042505212a.png">

1. さらに `OK` を押して、`CLI Interpreters` に `Remote PHP 7.1` がセットされたことを確認して `OK`。
<img width="936" alt="スクリーンショット 2017-03-02 15.48.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/c9758ed6-a884-91dd-bb1c-217e03a7cfe8.png">

1. `Path mappings` の `...` をクリックして `Edit Project Path Mappings` を開きます。

1. `+` を押して列を追加し、 `Local Path` と `Remote Path` 配下のフォルダ構成が一致するようにそれぞれのパスを設定します。
<img width="588" alt="スクリーンショット 2017-03-02 15.55.06.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/d771e627-c06c-db91-9c10-ed09a11b87f3.png">

1. `Preferences` の `Languages & Freamworks` > `PHP` > `PHPUnit` で `+`。プルダウンが出るので `By Remote Interpreter` を選びます。下記のように設定して `OK`。
<img width="1113" alt="スクリーンショット 2017-03-02 15.58.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/0991fc95-fd93-c8f2-bfd1-98f4b9c3df49.png">

#テスト実行

1. `Edit Configurations ...` をクリックし、Run/Debug Configurations を開きます。
<img width="193" alt="スクリーンショット 2017-03-02 16.06.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/6596d7c6-da00-7940-f291-85ea44c9bb92.png">

1. `+` を押し、`PHPUnit` をクリックし、以下のように設定します。`File` はテストコード (xxxTest.php など) を指定します。なぜか `File` を二回指定しないと `Class` に文字列が入ってこない現象が頻発しています。同じ現象が発生した場合は再度 `File` から同じファイルを指定してみてください。
<img width="991" alt="スクリーンショット 2017-03-02 16.08.41 1.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/c403c9fa-98db-21f8-5ed1-97842a02a859.png">


1. 作成した Configuration <img width="157" alt="スクリーンショット 2017-03-02 16.17.27.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/80992339-38ed-2c31-f94e-49a55a3678e9.png"> 
を選択し <img width="29" alt="スクリーンショット 2017-03-02 16.16.45.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/43a47eaf-fce3-1c7f-6451-3c1aab49be13.png"> をクリックします。うまく動作するとこんな感じになります。
<img width="921" alt="スクリーンショット 2017-03-02 16.19.58.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/662f27c7-1f7f-b25e-1aec-df1f64781788.png">

1. ブレークポイントをしかけて Debug <img width="29" alt="スクリーンショット 2017-03-02 16.16.45.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/43a47eaf-fce3-1c7f-6451-3c1aab49be13.png"> してみましょう。
<img width="509" alt="スクリーンショット 2017-03-02 16.22.28.png" src="https://qiita-image-store.s3.amazonaws.com/0/115844/89f94df5-8cd2-cbd0-34ab-268622c1bc98.png">



以上です。