PhpStormを使用してPHP UnitのテストをVagrantのリモート上で実行する
LaravelのUnitテストを実行すべく、ローカルのVagrant環境上でPHP Unitを実行するように設定してみた。
環境
- Vagrant
- Laravel 5.5.7
- PHP 7.0
PHP Unit
PHP UnitはCompoerにてプロジェクトディレクトリにインストールする。
LaravelではデフォルトでComposerに入っているので特に設定はなし。
(Linuxに入れる必要はない)
1
|
|
PhpStorm
PhpStormでの設定方法。
設定したいプロジェクトのルートディレクトリを開いた状態で設定する。
PHP Interpreter
Preference
を開く。
Languages & Frameworks -> PHP -> Test Frameworks
を選択。
+
マークをクリックし、PHPUnit by Remote Interpreter
を選択する。
Interpreterを選択するウインドウが開くが、interpreterがないので作成する。
右端の...
をクリックする。
ウインドウが開くので、+
をクリックし、From Docker, Vagrant, VM, Remote...
を選択。
開いたウインドウで、Vagrant
を選択。すると自動で設定が読み込まれるのでそのままOKする。
OKをクリックすると、SSH接続が行われ情報が自動で読み込まれる。
そのままでOKなのでOKをクリックする。
Interpreterを選択する画面に戻るので、作成したInterpreterを選択し、OKをクリック。
追加したInterpreterでPHPUnitのライブラリを指定するが、Composer経由でのロードになるので、デフォルトのUse Composer autoloader
のままでよい。
Vagrant内でのautolodのパスを指定するので、...
をクリック。
Scothboxは/var/www
がホストと共有しているディレクトリになるので、そこからvendor/autoload.php
を選択する。
選択すると、追加されているPHPUnitのバージョンが表示される。
これでInterpreterの設定は完了。
Run/Debug Configurations
Configurationsの設定を行う。
メニューから、Run -> Edit Configurations
を選択。
+
をクリックし、PHPUnit
のConfigurationを追加する。
Nameは適当に書く。
Test scopeはテストしたいディレクトリを選択する。
Laravelのtestsディレクトリを指定しておく。(どこでもよい)
この設定の下部に、Errorと出ているのでFixをクリック。
PHPの設定ウインドウが開くので、PHP language level
はVagrant環境に合わせて7
を選択。
CLI Interpreter
は設定したinterpreterを選択する。
OKで閉じる。
実行
右上のセレクトボックスが、先ほど作成したConfigurationが選択されている状態になっているはずなので、そのまま緑の三角をクリック。
すると、tests
ディレクトリ以下のテストファイルが自動で起動し、テストが実行される。
デフォルトのサンプルテストは必ず成功するので、無事、テストが通ればOK。
ExampleTest.php
のassertTrue
をfalse
にしてみて失敗させてみる。
1 2 3 4 |
|
ファイルを選択して右クリックすれば、そのファイルのみをテスト実行する事も可能。
失敗すると以下のようになる。
これで無事、成功と失敗の動作が確認できた。