2012-04-25 2 views
0

В настоящее время я тестирую приложение CodeIgniter с помощью phpunit с помощью CIUnit (https://bitbucket.org/kenjis/my-ciunit). Проблема в том, что у меня есть несколько контроллеров с тем же именем. У меня есть контроллер в каталоге корневого контроллера с именем «Блог», и у меня есть контроллер под названием «Блог» в каталоге controller/ajax /. Причина состоит в том, чтобы отделить все запросы ajax от основного контроллера.PHPUnit + CodeIgniter несколько объектов с тем же именем

Когда я бегу тестов на обоих файлах, я получаю следующее сообщение об ошибке:

PHP Fatal error: Cannot redeclare class Blog in ...

Ну, я не удивлён Я получаю эту ошибку.

Каковы мои варианты решения этой проблемы?

  1. контроллеры префиксов в АЯКСЕ директории с "Аяксом" (только выглядят немного глупо URL/Ajax/ajax_blog)
  2. Использование пространств имен (я думаю, мне нужно пространство имен CodeIgniter тоже тогда)
  3. Создать-отдельно PHPUnit .xml файлы

Это не настоящие решения, которые я ищу. Есть ли у меня другие варианты? Можно ли каким-то образом запускать каждый testuite отдельно, но все же в одной команде? Могу ли я «чистить» объекты между testuites? Что-нибудь еще?

ответ

1

Нет других опций, кроме указанных вами, поскольку невозможно «разгрузить» определения классов в PHP.

Именование двух контроллеров одинаково не является проблемой при запуске CI, поскольку только один контроллер создается для каждого запроса, но этого следует избегать.

Если это только Ajax-URL вам не нравится, может заменить его на маршруте (в config/routes.php):

$routes['ajax/blog'] = 'ajax/ajax_blog'; 
+0

Ах, хорошая идея, на самом деле! Забыл о параметрах маршрутизации. Благодаря! –

Смежные вопросы