ユニットテスト0のレガシープロジェクトにPHPUnitを導入する

ユニットテスト0のレガシープロジェクトにPHPUnitを導入する

PHPUnitの導入記事ってたくさんあるけどどうも自分で消化できない部分が多いのでまとめておきます
今回はphpunit.xmlの書き方がなんとなく理解できたのでそれを書いておきたかっただけですけど\(^o^)/

PHPUnitのインストール

pearComposerでインストールしてください

※PHPのバージョンが5.2系の場合はこちらの方法で入れて下さい

テストコードの作成

テストコードを置くディレクトリの作成

どこでもいいので作成します

phpunit.xmlを作成

あとで使います

参考:http://www.phpunit.de/manual/3.3/ja/appendixes.configuration.html

ひな形の作成

テストを作りたいファイルのディレクトリに移動し、コマンドを叩きます

※Wrote skeleton for hogehoge と出ない場合は書き方が間違っているのでphpのエラーログを見るといいです

テストの実行

とりあえずマニュアルに書いてあるとおりにその場で実行してみます

何も表示されません、これはClassNameTest.phpの中身を見るとわかりますが
コンストラクターでClassNameオブジェクトを作っているのに、ファイルを呼び出していない為に起きています
※エラーログを見ると出ています

なので、まずはClassNameTest.phpを修正、もしくはautoloadを使ってクラスを呼び出して上げる必要が有ります

※ファイル名がPath_To_Class.phpなどになってる場合↑のコマンドだと
Cannot open file “Path/To/ClassTest.php”.
というエラーになり、実行できません。その場所へファイルを置くもしくは

とすれば、実行されます

*Test.phpをtestsディレクトリに移動する

パターン1 requireを追記する

追記したらもう一度コマンドを実行する

テスト内容を書いていないので全てスキップの結果が出ると思います

パターン2 autoloadしているファイルを呼び出す

フレームワークなんかの場合bootstrap.phpがそれに当たると思います
コマンドラインのオプションを付けて実行してあげれば最初に読み込まれます

この場合もパターン1と同じ結果が出ると思います
こちらのパターンを使う場合はphpunit.xmlに1行追加しておくと毎回引数を書かなくていいので楽です

ひとまず

これで、testsディレクトリ内でphpunitを実行すればそこにあるテストが全て実行されるという準備ができました
あとはコツコツと書いていくしか・・・(‘A`)

DBを使ったテストとか考えると先が長いです

コメントを残す