0

zend-framework モデルを呼び出してその関数を使用したいのですがAuthenticationControllerTest.php、ターミナルから実行するとエラーが発生します。

 - -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 致命的なエラー: クラス 'Model_testmodel_Object' が /var/www/versioned/pm160form/tests/application/controllers/AuthenticationControllerTest.php の 146 行目に見つかりません

4

1 に答える 1

0

テスト スーツ フォルダーが実際のアプリケーション フォルダーに解決されていないようです。あなたが持っている方法を参照してください

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

ただし、dirname は現在、実際のアプリケーションを持たない test/application/controller ディレクトリを指しています。代わりに、最上位ルートの下にあるアプリケーション フォルダーをポイントしてみてください。

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

また、http://framework.zend.com/manual/1.12/en/zend.test.phpunit.html で説明されているように、Zend Framework で PHP ユニットを使用する標準に従うように注意してください。オートローダーが機能する前に、フレームワークを完全にブートストラップする必要があります。

于 2013-09-28T12:53:46.560 に答える