【发布时间】:2010-07-23 14:14:31
【问题描述】:
当我尝试从当前 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 函数有冲突。我仍然不太确定如何解决这个问题。
【问题讨论】:
标签: unit-testing installation phpunit autoload set-include-path