Работа с проблемами Phpunit Path
-
28-09-2020 - |
Вопрос
Я получаю следующую ошибку, когда я пытаюсь запустить 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));
.
Так что вы идете.Ну, по крайней мере, там вы идете в случае, когда вы на самом деле получили эту проблему :)