2015年5月21日木曜日

vagrant + phpstorm + phpunit 環境を構築しよう

今や主流の組み合わせである vagrant + phpstorm + phpunit の最新構築方法です。
ネットで検索しても古いバージョンの情報ばかりだったので、置いておきます。

phpstorm8(現時点最新)での導入方法となります。
要点のみの説明です。

まずはじめに
簡単にphpstorm8でphpunitと連動させるには、いくつかの制約がございます。
仕組みに詳しくない人は変な事をせず、さくっと設定しちゃいましょう。


①仮想環境(vagrant)にphpunitをインストール

必ずcomposerでインストールしてください。使ったことが無い人は「phpunit composer」でぐぐりましょう。
phpstormの設定ウインドウにはphpunitのダウンロードアドレスが載っていますが、手動インストールは設定難易度が一気に上がります。置いただけでは連動しません。


あと、sshでアクセスできる状態にしておいてくださいね。 phpstormからはssh経由でphpunitを実行されます。

②設定

Settings>Languages>PHP>PHPUnit で設定

「+」を押して By Remote Interpreter
プルダウンに何も無いので、右の「・・・」をクリックし Interpreters ウインドウを開く
何もないので「+」を押して追加
追加内容は、Vagrantを選び、適切な内容に。

さくさくっと進み、再び PHPUnit設定 に戻ってきます。
追加した設定を選択し、 Use Custom autoloder を選びます。 ここがポイント
composerでphpunitをインストールするとオートローダーが設置されていますので、探して指定してください。
最後に Default configuration file を指定して終わりです。

Default configuration fileとは、phpunit.xmlのことです。 めんどくさがらずに作りましょう!
ここで指定しない場合は、別途で指定になるかと思います。


以上で基本設定は終わります。
次に、テストの実行ですね。

phpstormの上部メニュー Run > Edit Configurations を開きます。
「+」を押して PHPUnit を選びます。「PHPUnit on Server」はhttp経由での実行(旧機能)なので無視してください。
PHPunitを選ぶとテスト内容の設定を行います。大規模になると複数作ることになりますね。
Defined in the configuration file を選ぶと、PHPUnitの設定「Default configuration file」で指定したテスト内容を実行してくれます。

これにて各設定終わり!
画面右上にPHPUnitのテスト実行ボタン等が出現したと思います。 そこから実行してください。



上記通りの設定をすると、ファイル名のみルール(xxxxTest.php)に従うのみで、ディレクトリ構造は自由です。
従わない場合ははオートローダーでテストケースを読み込みになるなどで、面倒なことになります。