PHPのテスト環境を整える

JetBrainsのPhpStormとPHPUnitの組み合わせの記事があまりにも少ないので備忘録も兼ねて日記を書いてみる。

環境

Windows7(32bit)
PHP 5.3.6 (cli) (build: Mar 17 2011 10:37:07)
PEAR 1.9.2
PHPUnit 1.3.2

PHPのインストール

ここからインストーラーを落としてくる。ExtraのPEAR Installも選択
php.iniのextension_dirのコメントアウトをはずして、絶対パスで指定する。

PEARのインストール

  1. PHPインストールフォルダのgo-pear.batを実行
  2. 設定項目はお好みのように


PHPUnitのインストール

  1. pear upgrade-all
  2. pear channel-discover pear.phpunit.de
  3. pear channel-discover components.ez.no
  4. pear channel-discover pear.symfony-project.com
  5. pear install phpunit/PHPUnit

pearのバージョンが1.9.1だとPHPUnitがインストールできなかったのでupgradeは必須
channel-discoverも3つとも追加しないとだめです。

PhpStormの設定

  1. PHPUnitを使いたいプロジェクトを開く
  2. [File] => [Settings] => [PHP] =>[PHP homeを設定]
  3. 同様に[PHP]で[Include paths]にC:\PHP\PEAR\PHPUnitとC:\PHP\PEARを追加
  4. [Apply] => [OK]

前準備完了

下準備が終了したので次にテストケースの作成を行います。
Hoge.phpとHogeTest.phpを作成する。
テストケースのクラス名はXXXTest.phpです。(XXXは任意のテストしたいクラス名)

Hoge.php

<?php
class Hoge {
    private $hoge_;

    public function __construct($_hoge){ $this->hoge_ = $_hoge; }

    public function getHoge(){ return $this->hoge_; }
}
?>

HogeTest.php

<?php
require_once("Hoge.php");

class HogeTest extends PHPUnit_Framework_TestCase {
    private $hoge_;
    protected function setUp()
    {
        $this->hoge_ = new Hoge("hogetest");
    }

    public function testgetHoge()
    {
        $this->assertEquals("hogetest", $this->getHoge());
    }
}
?>

次にテストの設定を行います。
[Run] => [Edit Configurations]

[+] => [PHPUnit]

このように設定

All Tests passed

assert関数を使って値チェックを行う。
関数の種類についてはPHPUnitのドキュメントを参照してください。