2013-09-27 124 views
0

我想調用我的zend框架模型並使用AuthenticationControllerTest.php中的函數,但是當我從終端運行它時出現錯誤。在Phpunit類中加載Zend-Framework模型

- -MyZendproject 
- -application 
    -model 
    -testmodel 
- +public 
- -tests 
    - aplication 
    - controller 
     - .AuthenticationControllerTest.php 

這裏是我的AuthenticationControllerTest.php文件

<?php 
require_once `PHPUnit/Framework/TestCase.php`; 

defined(`APPLICATION_PATH`) 
     || define(`APPLICATION_PATH`, realpath(dirname(__FILE__) . `/../application`)); 

    // Define application environment 
     defined(`APPLICATION_ENV`) || define(`APPLICATION_ENV`, `tests`); 

     // Ensure library/ is on include_path 
     set_include_path(implode(PATH_SEPARATOR, 
       array(realpath(APPLICATION_PATH . `../../../library`), get_include_path()))); 

     // Zend_Application 
     require_once `Zend/Application.php`; 

     $application = new Zend_Application(
       APPLICATION_ENV, 
       realpath(APPLICATION_PATH .`configs/application.ini`) 
     ); 
class AuthenticationControllerTest extends PHPUnit_Framework_TestCase 
{ 
    public function testLoginRetriespLogin() { 
     $testmodel = new Model_testmodel_Object();//my model 
    } 
} 

但是當來自終端 「的PHPUnit AuthenticationControllerTest」 運行它,它給我的錯誤:

$ phpunit AuthenticationControllerTest

..FPHP Fatal error: Class 'Model_testmodel_Object' not found in /var/www/versioned/pm160form/tests/application/controllers/AuthenticationControllerTest.php on line 146

+0

由於您使用了許多[反引號(執行運算符)](http://php.net/language.operators.execution),您的代碼實際上應該會產生更多的錯誤。除此之外,你在你的問題中描述的只是一個缺少的類定義。只需要包含它的文件。 – hakre

+0

另外,我認爲你可以從phpunit bootstrap文件和xml配置中獲益:http://phpunit.de/manual/current/en/appendixes.configuration.html – hakre

回答

0

看起來你的測試套文件夾沒有解決朝着實際的應用文件夾。看你怎麼有

|| define(`APPLICATION_PATH`, realpath(dirname(__FILE__) . `/../application`)); 

但你的目錄名,目前指向測試/應用/控制器,當然,沒有實際的應用程序目錄。試着指出這是頂級的根,而不是下的應用程序文件夾,

|| define(`APPLICATION_PATH`, realpath(dirname(__FILE__) . `/../../../application`)); 

此外,應注意遵循在http://framework.zend.com/manual/1.12/en/zend.test.phpunit.html描述Zend框架使用PHP單位的標準。在自動加載器可以工作之前,框架需要完全自舉。