当我运行phpunit来测试我的控制器时,总会收到消息:Class Zend_Test_PHPUnit_Controller_TestCase could not be found ...
所有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 :(得分:1)
课程不在您的包含路径中,或者您根本没有课程。
采取的步骤:
祝你好运
答案 1 :(得分:1)
您可以将其放入引导程序以激活自动加载器。
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
如果您创建了一个应用程序对象,它会自动为您执行此操作 但是否则使用上面的方法自己做。
答案 2 :(得分:0)
最明显的第一个问题是,Zend Framework源代码的版本是什么?它位于Zend/Version.php.
答案 3 :(得分:0)
两种对我有用的解决方案:
答案 4 :(得分:0)
将它放在bootstrap.php文件中:
require_once 'Zend/Test/PHPUnit/ControllerTestCase.php';
为我工作。祝你好运!
答案 5 :(得分:0)
我在以下设置中遇到了类似的问题
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">
....
或者你可以从任何目录中调用phpunit,用-c参数指定phpunit.xml的位置
phpunit -c tests/phpunit.xml