【问题标题】:Zend Framework + PHPUnit + NetbeansZend 框架 + PHPUnit + Netbeans
【发布时间】:2011-12-13 15:20:32
【问题描述】:

我几乎没有为过去两天遇到的问题而苦苦挣扎。 事实上,我无法正常运行测试并接收:

PHP 致命错误:调用未定义的函数 Zend_Application() C:\xxxxxx\tests\application\controllers\IndexControllerTest.php 上 第 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();

您能帮我找出问题吗?我想提高我打算开始的迷你项目的质量,但如果不进行测试,这是不可能的。

提前谢谢你。


我为我的项目添加了目录结构。我将 zend 库保存在 Source Files/library/Zend 中。

【问题讨论】:

    标签: zend-framework netbeans phpunit


    【解决方案1】:

    错误来自这个:

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

    您在Zend_Application 之前缺少new

    但是,除非您打算使用它,否则我不清楚您拥有 appBootstrap 函数的用途:

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

    【讨论】:

    • 您好,感谢您的回答。不幸的是,我又失败了。我按照您使用 setUp() 的方式修改了代码;我得到了完全相同的错误(“PHP 致命错误:找不到类'Zend_Application'”),但这次是在 appBootstrap() 中。我可以要求任何其他提示,因为我想通过单元测试开始我的项目以提高质量,而没有环境是不可能的。
    • 这意味着 PHP 没有找到要加载的类。仔细检查 Zend_Application 的路径是否正确。该文件应位于../library/Zend/Application.php
    • 你好山姆,我在上面添加了目录结构的图片。我什至尝试将 Zend 库放在测试文件夹中。然而它并没有帮助,我仍然失败,可能在这里的某个地方犯了一些愚蠢的错误。
    • 最后我使用了从项目属性到它的测试定义路径的 boostrap - 感谢您的帮助
    【解决方案2】:

    您使用什么命令来运行测试? 如果您不加载引导程序,您将收到此错误。 phpunit --bootstrap 测试/bootstrap.php 测试

    【讨论】:

      猜你喜欢
      • 2013-05-22
      • 1970-01-01
      • 2012-03-02
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 2013-04-20
      • 2011-12-23
      相关资源
      最近更新 更多