当我尝试从我当前的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函数的冲突。我仍然不太确定如何解决这个问题。

有帮助吗?

解决方案

好吧,我不知道为什么这实际上是......但是因为它确实如此,我会发布结果。

$paths[] = get_include_path();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
set_include_path(implode(PATH_SEPARATOR, $paths));
. 所以你去了。至少,在那里,在那里,在你实际上遇到这个问题的情况下也是如此:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top