PHPUnitの導入記事ってたくさんあるけどどうも自分で消化できない部分が多いのでまとめておきます
今回はphpunit.xmlの書き方がなんとなく理解できたのでそれを書いておきたかっただけですけど\(^o^)/
PHPUnitのインストール
pearかComposerでインストールしてください
※PHPのバージョンが5.2系の場合はこちらの方法で入れて下さい
テストコードの作成
テストコードを置くディレクトリの作成
どこでもいいので作成します
~~~
$ mkdir tests
~~~
phpunit.xmlを作成
あとで使います
~~~
$ vim tests/phpunit.xml
参考:http://www.phpunit.de/manual/3.3/ja/appendixes.configuration.html
ひな形の作成
テストを作りたいファイルのディレクトリに移動し、コマンドを叩きます
~~~
$ phpunit-skelgen –test ClassName
PHPUnit Skeleton Generator 1.1.0 by Sebastian Bergmann.
Wrote skeleton for “ClassNameTest” to “/path/to/ClassNameTest.php”.
~~~
※Wrote skeleton for hogehoge と出ない場合は書き方が間違っているのでphpのエラーログを見るといいです
テストの実行
とりあえずマニュアルに書いてあるとおりにその場で実行してみます
~~~
$ phpunit –verbose ClassNameTest
PHPUnit 3.6.10 by Sebastian Bergmann.
~~~
何も表示されません、これはClassNameTest.phpの中身を見るとわかりますが
コンストラクターでClassNameオブジェクトを作っているのに、ファイルを呼び出していない為に起きています
※エラーログを見ると出ています
なので、まずはClassNameTest.phpを修正、もしくはautoloadを使ってクラスを呼び出して上げる必要が有ります
※ファイル名がPath_To_Class.phpなどになってる場合↑のコマンドだと
Cannot open file “Path/To/ClassTest.php”.
というエラーになり、実行できません。その場所へファイルを置くもしくは
~~~
$ phpunit –verbose Path_To_Class Path_To_Class.php
~~~
とすれば、実行されます
*Test.phpをtestsディレクトリに移動する
~~~
$ mv ClassNameTest.php /path/to/tests/
~~~
パターン1 requireを追記する
~~~
パターン2 autoloadしているファイルを呼び出す
フレームワークなんかの場合bootstrap.phpがそれに当たると思います
コマンドラインのオプションを付けて実行してあげれば最初に読み込まれます
~~~
$ phpunit –bootstrap /path/to/framework/bootstrap.php
~~~
この場合もパターン1と同じ結果が出ると思います
こちらのパターンを使う場合はphpunit.xmlに1行追加しておくと毎回引数を書かなくていいので楽です
~~~
ひとまず
これで、testsディレクトリ内でphpunitを実行すればそこにあるテストが全て実行されるという準備ができました
あとはコツコツと書いていくしか・・・(‘A`)
DBを使ったテストとか考えると先が長いです
コメント