LoginSignup
25
22

More than 5 years have passed since last update.

PHPStorm で PHPUnit のテストをステップ実行する

Last updated at Posted at 2016-02-13

概要

PHP で PHPUnit のテストがうまく通らず、PHPStorm でステップ実行したくなることがたまにあります。

しかしながら、PHPStorm の PHP Remote Debug はブラウザ経由でないと、動きません。

と、思っていましたが PHPStorm でやれる方法が判ったので設定方法を共有します。

なので、無理やり画面を作って、PHPUnit を実行する方法を取ったら、まあ上手くいったので覚書ついでに共有してみます。 (2016--216 k-hottaさんからの指摘でさらに良い方法にたどり着いたので修正しました。)

さらに良い方法をご存知の方がいらっしゃいましたら是非コメントください。

前提環境

  • PHPStorm を使っている。
  • vagrant を使っており、 php はゲストサーバ側にある。 (つまりリモートデバッグは可能。)
  • テストしたい部分には Web 経由で表示する画面がない。

PHPStromの設定方法

[SFTPの設定]

  • SettingsBuild, Execution, Deployment > Deployment+ を押す。
  • Add Server 画面がポップアップするので namevagrantTypeSFTP に設定して OK

例:
image

  • Connection タプに vagrant との接続設定を書く。Root path にソースのルートを書いておくと後が楽(末尾に / はつけない)。

例:
image

  • Mappings タブは下記のように書く:
    • Local path にはローカルのプロジェクトのディレクトリを書く。
    • Deployment path on server 'vagrant' には、リモートのプロジェクトのディレクトリを、前述の Root path からのパスを / から初めて書く。

例:
image

[PHPのInterpreterの設定]

  • SettingsLanguages & Freamworks > PHPInterpreter という項目があり、この ... を押す。
  • Interpreters という画面がポップアップするので、+ を押して Remote... を追加する。
  • SSH Credentials を選び、接続情報を入力し、OK
  • さらに OK して、InterpretersRemote PHP ~ がセットされたことを確認して OK

[リモートの PHPUnit の設定]

  • SettingsLanguages & Freamworks > PHP > PHPUnit+ を押す。
  • プルダウンが出るので By Remote Interpreter を選ぶ。
  • 下記のように設定して OK を押す。

image

[CakePHP2 なら Edit Configuration のデフォルト設定]

※CakePHP2.x でないならこの項目は不要です。

[テスト実行]

初回なら、

  • テストしたいファイルで右クリック。
  • メニューから Debug クラス名 を選択する。

これでテスト実行されます。

2回目からは、image を選んで image を押せばOKです。

無理やり画面作って動かす場合

上記の方法があれば不要ですが、まあ、何かの役に立つかもしれないので、残しておきます。

<?php
//テストしたいクラスを読み込みます(今回はこの中で autoloader.php を読み込んでいます。)
require_once __DIR__ . '/test/FooTest.php'; 

//テストしやすくするためにエラーが画面に表示されるようにしておきます(既になっていれば不要)
ini_set('display_errors', '1');

//単体テストのクラスを生成
$case = new FooTest();

//データプロパイダのデータを取得し、ループする
$data = $case->provider_suspending();
foreach ($data as list($a, $b, $c)) {
    //試したいテストを実行する
    $case->testテストメソッド($a, $b, $c);
}

手順

  1. 上記を適当な場所に置く。
  2. httpd.conf で新しいバーチャルドメインを作成し、上記のファイルをパスを通しておく。
  3. hosts でドメインが通るようにしておく。
  4. httpd 再起動。

以上。

25
22
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
22