2011-02-24 43 views
2

我有一个基于Zend Framework的应用程序,我尝试使用phpunit为测试用例生成框架。 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 

所以,我对于示例应用程序/模型/ 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,所以请原谅我的初学者问题;) 在此先感谢!

回答

5

您需要设置一个自动加载器,以允许PHP在引用时导入X1和任何其他类,通常在bootstrap.php中。

require_once 'Zend/Loader/AutoLoader.php'; 
$autoloader = Zend_Loader_AutoLoader::getInstance(); 
$autoloader->registerNamespace('X1_'); 
+0

如果Zend Framework目录不在你的include路径中,把它放在上面'require_once'的开头:'require_once PATH_TO_ZEND。 '/Zend/Loader/Autoloader.php';' – 2012-07-10 18:39:40