Phpunit骨架生成器找不到扩展类

时间:2011-02-24 00:48:11

标签: php unit-testing zend-framework phpunit

我有一个基于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指定bootstrap文件,并使用--configuration指定config以确保找到库的路径,但我似乎无法使其工作(结果与以上)。如何让phpunit找到这个库类来生成骨架?

我是PHP,phpUnit和Zend的新手,所以请原谅我的初学者问题;) 提前谢谢!

1 个答案:

答案 0 :(得分:5)

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

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