自分用にインストールしたpearを使おうとしてredeclareみたいに文句言われた場合

丁度ファイル入出力が絡むテストを書いて、めんどくさいなー、と思っていたところに
http://blog.yuyat.jp/archives/1280
↑でvfsStreamというものが紹介されていたので試そうとしたらひっかかったのでメモ。

とりあえずCache_Casualのテストを実行してみる

tests/unit/bootstrap.phpに自分用pearのインクルードパスを追加。

<?php
set_include_path('/home/calpo/share/pear/php' . PATH_SEPARATOR . get_include_path());
$ phpunit --bootstrap bootstrap.php Cache/Casual/Container/FileTest.php

PHP Fatal error:  Cannot redeclare class File_Iterator in /home/calpo/share/pear/php/File/Iterator.php on line 196
Fatal error: Cannot redeclare class File_Iterator in /home/calpo/share/pear/php/File/Iterator.php on line 196

自分用のpearディレクトリは後ろに設定する

<?php
// ×
set_include_path('/home/calpo/share/pear/php' . PATH_SEPARATOR . get_include_path());

// ○
set_include_path(get_include_path() . PATH_SEPARATOR . '/home/calpo/share/pear/php');

実行できるようになった。

$ phpunit --bootstrap bootstrap.php Cache/Casual/Container/FileTest.php
PHPUnit 3.5.3 by Sebastian Bergmann.
..
Time: 0 seconds, Memory: 5.25Mb
OK (2 tests, 2 assertions)