2013-03-26 6 views
0

я пытаюсь использовать PHPUnit с ZendFramework и я follwing учебник вPHPUnit в ZendFramework 2

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 

я думаю, что это путь Probleme (auloading), но я не знаю, как исправить

любой может мне помочь, пожалуйста?

ответ

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'; 

EDIT Продолжение ...

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'; 
} 
+0

спасибо за вашу помощь, я DIT, как вы сказали мне и кажется, что есть проблема с загрузкой мой модуль ZF2 PHP Фатальная ошибка: неперехваченным исключение «RuntimeException» с сообщением «Невозможно загрузить ZF2. Запустите 'php composer.phar install' или определите переменную среды ZF2_PATH. ' в C: \ wamp \ www \ zf2 \ init_autoloader.php: 48 есть идеи, откуда это происходит? моя все остальные модели работают отлично с auloader – Ramy1988

+0

Эта фатальная ошибка показывает, что у нее проблемы с поиском вашего автозагрузчика библиотеки ZF2. Где ZF2 находится в вашей среде? У вас есть папка поставщика? Вы используете композитора? –

+0

да, я использую композитор (я редактировал композитор.json для установки phpunit), phpunit установлен в: C: \ wamp \ www \ zf2 \ vendor zf2 находится в: C: \ wamp \ www PS: изначально zf2 был назван скелетом zend (который можно скачать с zend сайт, затем я назвал его zf2) также у меня есть папка-композитор, расположенная в каталоге C: \ wamp \ www \ zf2 \ vendor, содержит autoload_classmap.php, autoload_namespaces.php, autoload_real.php, ClassLoader.php, include_paths. php и installed.json. спасибо за ваше время. Я надеюсь, что мы найдем решение этой проблемы, потому что я действительно старался изо всех сил без результата :( – Ramy1988

0

Вот Фикс для фатальной ошибки.

В вашем приложении должен отсутствовать пакет «zend-test».

$ composer require zendframework/zend-test