2011-10-23 17 views
0

私は過去2日間経験した問題に対してほとんど苦労していません。 実際に私はきちんとテストを実行し、受信することはできません。Zend Framework + PHPUnit + Netbeans

PHP Fatal error: Call to undefined function Zend_Application() in C:\xxxxxx\tests\application\controllers\IndexControllerTest.php on line 10

IndexControllerTestは非常に簡単で、次のようになります。

:テストのために一方のブートストラップで

require_once 'Zend/Test/PHPUnit/ControllerTestCase.php'; 


class IndexControllerTest extends Zend_Test_PHPUnit_ControllerTestCase 
{ 

    public function setUp() 
    { 
     $this->bootstrap = Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini'); 
     parent::setUp(); 
    } 

    public function appBootstrap() { 
     $this->application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini'); 
     $this->application->bootstrap(); 
    } 
... 

のみ次のコードが含まれています

// Define path to application directory 
defined('APPLICATION_PATH') 
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); // /../application 

// Define application environment 
defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'testing')); 

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

require_once 'Zend/Loader/Autoloader.php'; 
Zend_Loader_Autoloader::getInstance(); 

問題を見つけるのを手伝ってもらえますか?私はミニプロジェクトの品質を向上させたいと思っています。テストは開始できませんが、不可能です。

ありがとうございます。


structure

私は私のプロジェクトのためのディレクトリ構造を追加しました。私はzendライブラリをSource Files/library/Zendに置いています。

答えて

2

エラーはここから来ている:あなたはZend_Applicationnewを逃している

$this->bootstrap = Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini'); 

しかし、それはあなたがそれを使用するつもりがない限りためappBootstrap機能を持っているものを私にはっきりしていない:

public function setUp() 
{ 
    $this->appBootstrap(); 
    parent::setUp(); 
} 
+0

こんにちは、ありがとうございます。残念ながら私は再び失敗しました。あなたがsetUp()で提示した方法でコードを修正しました。私は同じエラー( " PHP致命的なエラー:クラス 'Zend_Application'が見つかりませんでした)と同じですが、今回はappBootstrap()でエラーが発生しました。私は、品質向上のために単体テストでプロジェクトを始めたいと思うので、追加のヒントを求めてもいいでしょう。 – Lormitto

+0

PHPがロードするクラスを見つけられないことを意味します。あなたのZend_Applicationへのパスが正しいか再度確認してください。ファイルは '../ library/Zend/Application.php'の下にある必要があります – Sam

+0

こんにちはサム、ディレクトリ構造で上記の画像を追加しました。私はZendのlibsをtestsフォルダに配置しようとしました。しかし、それは助けにはならなかったし、私はまだここでどこか愚かな間違いをしているかもしれない。 – Lormitto

1

あなたがテストを実行するために使用されているどのようなコマンド? ブートストラップをロードしないと、このエラーが発生します。 phpunit --bootstrap tests/bootstrap.php tests

関連する問題