Генератор скелета Phpunit не может найти класс расширений - PullRequest
2 голосов
/ 24 февраля 2011

У меня есть приложение, основанное на Zend Framework, которое я пытаюсь использовать phpunit для генерации скелетов для тестовых случаев. Phpunit не может найти родительские классы классов, для которых я пытаюсь сгенерировать:

phpunit --skeleton-test Default_Model_Person ../application/models/Person.php 
PHPUnit 3.5.11 by Sebastian Bergmann.

PHP Fatal error:  Class 'X1_Db_Table_Auditable' not found in /path/to/application/models/Person.php on line 3

Fatal error: Class 'X1_Db_Table_Auditable' not found in /path/to/application/models/Person.php on line 3

Итак, у меня есть, например, application / models / Person.php

 <?php

class Default_Model_Person extends X1_Db_Table_Auditable
{       

В библиотеке / X1 / Db / Table / Auditable.php есть

<?php

class X1_Db_Table_Auditable extends X1_Db_Table
{

...

У меня есть другие тестовые случаи, написанные от руки, что phpunit может работать в этом приложении без проблем. Я также попытался указать файл начальной загрузки с --bootstrap и конфигурацию с --configuration, чтобы убедиться, что путь к библиотеке должен быть найден, но я не могу заставить его работать (результат такой же, как выше). Как я могу получить этот библиотечный класс, который будет найден phpunit для генерации скелета?

Я довольно новичок в PHP, phpUnit и Zend, поэтому, пожалуйста, прости мои вопросы для начинающих;) Заранее спасибо!

1 Ответ

5 голосов
/ 24 февраля 2011

Вам нужно настроить автозагрузчик, чтобы позволить PHP импортировать X1 и любые другие классы при обращении, как правило, в bootstrap.php.

require_once 'Zend/Loader/AutoLoader.php';
$autoloader = Zend_Loader_AutoLoader::getInstance();
$autoloader->registerNamespace('X1_');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...