現在の MVC フレームワーク アプリケーション内から PHPUnit を実行しようとすると、次のエラーが発生します。
Fatal error: Cannot redeclare class PHPUnit_Util_FilterIterator in /usr/local/pear/PHPUnit/Util/FilterIterator.php on line 162
そのエラーをいくつかの組み合わせに追跡することができました。
$paths = array();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
$paths[] = '/usr/local/pear';
set_include_path(implode(PATH_SEPARATOR, $paths));
コメントアウトしたら
set_include_path(implode(PATH_SEPARATOR, $paths));
PHPUnit はテストを実行します
コメントアウトしたら
$paths[] = '/usr/local/pear';
私は得る
Fatal error: require_once(): Failed opening required 'PHPUnit/Framework/TestCase.php'
他のすべてのディレクトリをコメントアウトすると、
$paths[] = '/usr/local/pear';
「再宣言できません」というエラーが表示されます。
実際のテストを実行できる唯一の方法は、set_include_path ステートメントを使用せずに実行し、個々の単体テストによって呼び出されるすべてのクラス ファイルを手動でインクルードすることです。
何か案は?
編集: __autoload 関数と競合しているようです。私はまだ問題に対処する方法がよくわかりません。