0
我收到以下錯誤,當我嘗試從我目前的MVC框架應用PHPUnit的路徑處理問題
Fatal error: Cannot redeclare class PHPUnit_Util_FilterIterator in /usr/local/pear/PHPUnit/Util/FilterIterator.php on line 162
我已經成功地跟蹤該錯誤的幾件事情的組合中運行的PHPUnit。
$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函數有衝突。我仍然不確定如何解決這個問題。
它猜測它的工作原理是因爲phpunit文件的路徑在你的包含路徑和我的合併,而不是覆蓋舊的包含路徑PHP是能夠找到文件:)(並且該路徑可能設置在運行時或不同於/ usr/local /梨,因爲2安裝或某事:)) – edorian 2010-08-17 16:21:09