読者です 読者をやめる 読者になる 読者になる

俺の報告

RoomClipを運営するエンジニアの日報(多分)です。

日報 #28 - PHPUnitでもって

ヤバイくらい作業に追われて僕はもう。

お元気ですか。
telnetから抜け出す方法を毎回ググってる僕の日報です。

さて、28日目ともなるとガチで話題がないです。
いつもなら上の一行を書いているうちにアレにしようと決めるのですが、
今日はこのまま何もせず手が止まるのではないかとビクビクしております。

あぁどうしよう。じゃぁこうしよう。
PHPUnitテストについて少し触れます。

僕はCodeigniterなるPHPのFWを使っているのですが、
バージョン2.1周りではちょっとテストしづらい環境にあります。
しかし、インターネッツの世界には立派な方がおりまして、
当たり前のように拡張ユニットがあります。
かの有名なKenjiさんのCIUnitなるテストユニットです。
http://d.hatena.ne.jp/Kenji_s/20110907/1315354005

なのですが、、、

問題は、CIUnit自体はバージョン3.6系のPHPUnitにのみ対応っぽいんですね。
おもむろにPHPUnitググると、世界はもう既に4系へと進んでおり、
ナウいpharしかDLできんようです。(正確には3.7系から)
pharとかもう読み方もわからないシロモノなので、いや便利なんだけど、ちょっと困っちゃうわけです。
PHPUnit/Autoloader.phpがねぇよっ!みたいなエラー

PHP Fatal error: require_once(): Failed opening required 'File/Iterator/Autoload.php' (include_path='.;/Users/shill/pear/share/pear') in /User s/pear/PHPUnit/Autoload.php on line 64
こんな感じの喰らっている人がいたら、まさにこの話なわけです。

ってことで、3.6系をぶっこむのです。
なのですが、俺の雑な見方が悪いのか、世界が悪いのか、
PHPUnitの公式サイトでは3.6系は「なかったことになってる」レベルでなんも情報がありませんした。
いや絶対そんなことないので俺が悪いんだと思うのだけど。。。

とにかくなかったんだよ、、、
で、どうしたかというと、
えぇ、
もちろん、
力技です。

PHPUnit3.6系は手動で一個一個ダウンロードしてきて
適当なincludeディレクトリに突っ込むで実装するんです。
おもむろにここ(http://pear.phpunit.de/)に訪れ、
盗っ人のごとくファイルをDLしまくります。
俺が必要としたのは、CIUnitに必要なものだけなので、

この程度にしてやろうと思いましたが、ちょっと他にしたいことがあったので、

  • PHP_CodeCoverage(1.1.3)
  • Text_Template(1.1.1)

この辺もつまみ食いしておきます。
んで、testディレクトリまで移動して、そこから絶対パスphpunit.phpを指定して、test対象のphpファイルをなげる、そんな感じでやれまっせ。

あぁ、一応しのげた…
もう少し余裕をもってブログを書けるようになりたいですね。