Работа с проблемами пути PHPUnit - PullRequest
0 голосов
/ 23 июля 2010

Я получаю следующую ошибку при попытке запустить PHPUnit из моего текущего приложения MVC Framework

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 и вручную включаю все файлы классов, которые вызываются любым отдельным модульным тестом.

Есть идеи?

EDIT: похоже, что есть конфликт с функцией __autoload. Я все еще не совсем уверен, как решить проблему.

1 Ответ

0 голосов
/ 23 июля 2010

ну, как оказалось, я понятия не имею, почему это на самом деле работает ... но так как это происходит, я опубликую результат.

$paths[] = get_include_path();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
set_include_path(implode(PATH_SEPARATOR, $paths));

Итак, поехали. Ну, по крайней мере, если вы действительно столкнулись с этой проблемой:)

...