0

我正在尝试将 phpunit 与 zendframework 一起使用,我正在按照教程进行操作

https://media.readthedocs.org/pdf/zf2/latest/zf2.pdf这是我的

引导程序.php

<?php
chdir(dirname(__DIR__));
include __DIR__ . '/../init_autoloader.php';

这是我的 IndexControllerTest.php

<?php

namespace ApplicationTest\Controller;

use Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase;

class IndexControllerTest extends AbstractHttpControllerTestCase
{
public function setUp()
{
$this->setApplicationConfig(
include '/C:/wamp/www/zf2/config/application.config.php'
);
    parent::setUp();
}

public function testIndexActionCanBeAccessed()
{
    $this->dispatch('/'); // this is line 20
    $this->assertResponseStatusCode(200);

    $this->assertModule('application');
    $this->assertControllerName('application_index');
    $this->assertControllerClass('IndexController');
    $this->assertMatchedRouteName('home');
}
}

我得到了以下错误

Warning: include(C:\wamp\www\zf2\module\Application\test/../init_autoloader.php)
: failed to open stream: No such file or directory in C:\wamp\www\zf2\module\App
lication\test\Bootstrap.php on line 4


Fatal error: Class 'Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase'
not found in C:\wamp\www\zf2\module\Application\test\ApplicationTest\Controller
\IndexControllerTest.php on line 8

我认为这是一个路径问题(加载)但我不知道如何解决

任何人都可以帮助我吗?

4

2 回答 2

1
Warning: include(C:\wamp\www\zf2\module\Application\test/../init_autoloader.php)
: failed to open stream: No such file or directory in C:\wamp\www\zf2\module\App
lication\test\Bootstrap.php on line 4

此警告告诉您它找不到init_autoloader.php文件的位置。假设该文件按照惯例位于 ZF2 项目的根目录中(因此 C:\wamp\www\zf2),您需要更改:

include __DIR__ . '/../init_autoloader.php';

include __DIR__ . '/../../../init_autoloader.php';

编辑继续...

PHP Fatal error: Uncaught exception 'RuntimeException' with message 'Unable to 
load ZF2. Run php composer.phar install or define a ZF2_PATH environment 
variable.' in C:\wamp\www\zf2\init_autoloader.php:48

您的init_autloader.php文件无法找到 ZF2 库自动加载器。当您使用作曲家时。添加

"zendframework/zendframework": "2.1.*",

到您"require"在 composer.json 中的部分(如果它还没有的话)。运行作曲家并更新您的供应商库

php composer.phar update

尝试再次运行该应用程序,看看它是否有效。它可能取决于文件中包含的init_autoload.php内容。如果您仍然遇到问题,请将以下内容添加到init_autoloader.php

if(file_exists('vendor/autoload.php'))
{
    $loader = require 'vendor/autoload.php';
}
于 2013-03-27T09:10:36.830 回答
0

这是致命错误的修复。

您的应用程序中一定缺少“zend-test”包。

$ composer 需要 zendframework/zend-test

于 2018-02-14T06:05:01.633 回答