0

私はzendframeworkでphpunitを使用しようとしていて、チュートリアルに従っています

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

ファイルがZF2init_autloader.phpライブラリ オートローダを見つけるのに問題があります。コンポーザーを使用しているため。追加

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

"require"まだそこにない場合は、composer.json のセクションに追加します。composer を実行し、ベンダー・ライブラリーを更新します

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 に答える