我正在尝试将phpunit与zendframework一起使用,我正在使用
中的教程https://media.readthedocs.org/pdf/zf2/latest/zf2.pdf这是我的
bootstrap.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
我认为这是一个路径问题(auloading)但我不知道如何修复
任何人都可以帮助我吗?
答案 0 :(得分: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.*",
到composer.json中的"require"
部分,如果它还没有。运行composer并使用
php composer.phar update
尝试再次运行该应用程序,看看它是否有效。它可能取决于您的init_autoload.php
文件中包含的内容。如果您仍然遇到问题,请将以下内容添加到init_autoloader.php
if(file_exists('vendor/autoload.php'))
{
$loader = require 'vendor/autoload.php';
}
答案 1 :(得分:0)
这是致命错误的修复。
您必须错过应用程序中的'zend-test'软件包。
$ composer需要zendframework / zend-test