我有一个基于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的新手,所以请原谅我的初学者问题;) 提前谢谢!
答案 0 :(得分:5)
您需要设置一个自动加载器,以允许PHP在引用时导入X1和任何其他类,通常在bootstrap.php中。
require_once 'Zend/Loader/AutoLoader.php';
$autoloader = Zend_Loader_AutoLoader::getInstance();
$autoloader->registerNamespace('X1_');