Вопрос

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

Любые идеи?

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top