2009-04-17 5 views
1

を見つけることができませんでした:Class Zend_Test_PHPUnit_Controller_TestCase could not be found ...クラスZend_Test_PHPUnit_ControllerTestCaseでは、常にメッセージが来る

すべてのrequire_onceが実行され、エラーなしで実行されています。

マイファイル:

test.phpを:

<?php 

require_once 'bootstrap.php'; 

class indexTest extends Zend_Test_PHPUnit_ControllerTestCase 
{ 
    protected function setUp() 
    { 
     $this->bootstrap = array($this, 'appBootstrap'); 
     parent::setUp(); 
    } 

    public function appBootstrap() 
    { 
     $this->frontController->registerPlugin(new DemoApp_Controller_Plugin_Initialize('test', PROJECT_ROOT)); 
    } 

    public function testIndex() 
    { 
     $this->dispatch('/'); 
     $this->assertController('login'); 
    } 
} 

bootstrap.phpの:

<?php 
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../src/application/')); 

set_include_path(APPLICATION_PATH . '/../library' . PATH_SEPARATOR . 
     APPLICATION_PATH . '/modules' . PATH_SEPARATOR . 
     APPLICATION_PATH . '/layouts' . PATH_SEPARATOR . 
     get_include_path()); 

require_once 'PHPUnit/Framework.php';  
require_once 'PHPUnit/Framework/TestSuite.php';  
require_once 'PHPUnit/TextUI/TestRunner.php'; 

error_reporting(E_ALL); 

require_once APPLICATION_PATH . "/../library/Zend/Loader.php"; 
Zend_Loader::registerAutoload(); 

// Set up the config in the registry path relative to public/index.php 
$config = new Zend_Config_Ini(APPLICATION_PATH . '/config.ini'); //, 'test' 
Zend_Registry::set('config', $config); 

/*// Set up the database in the Registry 
$db = Zend_Db::factory($config->db); 
Zend_Db_Table_Abstract::setDefaultAdapter($db); 
*/ 

// Set timezone 
date_default_timezone_set("Europe/Berlin"); 

答えて

0

最も明白な最初の質問ですが、Zend Frameworkにのバージョンソースにはありますか?それはZend/Version.php.

+0

VERSION = '1.7.8' がphpunit.xmlの場所を指定する任意のディレクトリからのPHPUnitを呼び出すことができます。 – user63371

1

クラスがあなたのインクルードパスにないか、クラスをまったく持っていません。取るに
手順:

  1. クラスファイルを探す
  2. は、クラスがあなたの であることを確認してください auto_loaderの名の解析を含むパスを含める: Z_Y_YourClassは のinclude_path/Z/Y見れます/YourClass.php

グッドラック

+0

クラスは、 "APPLICATION_PATH"のファイル "ControllerTestCase.php" で定義されています。 "/../library/Zend/Test/PHPUnit/ ' これはbootstrap.phpのインクルードパスに追加されています – user63371

+0

絶対パスを使用して何が起こるかを実験してみてください –

1

あなたはトンを有効にするには、あなたのブートストラップでこれを置くことができます彼はオートローダー。

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

アプリケーション・オブジェクトを作成する場合、それは自動的に あなたのためにこれを行いますが、それ以外はそれを自分で行うには、上記を使用しています。私のために働いた

+0

これは実際に私のために働いた解決策です注:これはZF 1.8+(私は1.12を使用しています)のためだけだと思います。 –

0

2種類の溶液:

  1. はLN -s ../library/Zendとしてtestsディレクトリ内にシンボリックリンクを作成オートローダはPHPにファイルに
  2. 追加/ライブラリを見つけることができます含めますパス - また、これはあなたのbootstrap.phpのファイル内のファイル
0

場所を見つけるためのオートローダのに役立ちます:

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

私のために働いた。がんばろう!

0

私は次のセットアップ

  • に同様の問題は、ZFツールを使用してプロジェクトを作成し
  • 、Zendの1.12をダウンロードしていた:sh bin/zf.sh create project my-project
  • 、プロジェクトのルートフォルダからphpunitを実行します。

ソリューションcd testsにし、その後のPHPUnitを実行します。

理由なぜこれが起こったのは、phpunitが最初にブートストラップする必要があるということです。 ブートストラップスクリプトは、tests/phpunit.xml構成ファイルで定義されています。このファイルは、コマンドが実行されるのと同じディレクトリにファイルがある場合、デフォルトで読み込まれます。

phpunit.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<phpunit bootstrap="./bootstrap.php"> 
    <testsuite name="Application Test Suite"> 
    .... 

代わりにあなたは-c引数

phpunit -c tests/phpunit.xml 
関連する問題