Это вопрос о тестировании модуля PHP, который дает мне ошибку класса, не найденной.Выполнение теста PHPUnit дает ошибку «Класс не найден»
фон
Я использую Zend Studio 10.5 для разработки приложений с Zend Framework 2. У меня есть несколько модулей, загруженных, в том числе ZfcUser
и BjyAuthorize
FedcoUser является модулем, который имеет контроллер Guard, который использует правила караула BjyAuthorize:
<?php
namespace FedcoUser\Controller;
use Zend\View\Model\ViewModel;
use ZfcUser\Controller\UserController as ZfcUserController;
class MachinistController extends ZfcUserController
{
public function indexAction()
{
if (!$this->zfcUserAuthentication()->hasIdentity()) {
return $this->redirect()->toRoute($this->getOptions()->getLoginRedirectRoute());
}
return new ViewModel();
}
}
Использования Zend Studio 10.5 нативное меню, я создал тест для контроллера выше. Когда я запускаю его я получаю следующее сообщение об ошибке:
Debug Error: FedcoUser/Controller/MachinistController.php line 8 - Class 'ZfcUser\Controller\UserController' not found
Мое предположение, что каким-то образом, автопогрузчики для PHPUnit не может выяснить, где класс помещаются, потому что класс не может найти расположен в
vendor/zf-commons/zfc-user/src/ZfcUser/Controller/UserController.php
Я еще не знаком с тем, как PHPUnit работает, чтобы исправить эту ошибку. Есть ли у PHPUnit даже автозагрузчик? Есть файлы с именем bootstrap.php
, phpunit.xml
и TestConfiguration.php
в папке моего модуля /test/
, если это помогает. Я попытался случайно добавлять различные модули и пути к TestConfiguration.php
файла, как показано ниже, но это не помогло:
$additionalModulePaths = array(
'ZfcUser' => realpath('vendor/zf-commons/zfc-user/src/ZfcUser/Controller/UserController.php'),
);
Можете ли вы помочь?
Кто вы используете автозагрузку в своем проекте? – sectus
Я не уверен, что понял вопрос. Ответ, который я даю, может не иметь значения. Я использую ZendSkeletonApplication + несколько модулей Zfc + модуль BjyAuthorize. Я добавил модуль FedcoUser, который имеет Module.php с функцией getAutoloaderConfig(). есть также файлы autoload_classmap.php, autoload_function.php и autoload_register.php. Я могу опубликовать код внутри них, если он уместен. – Dennis