2016-05-13 2 views
0

Фактически, работая над плагином Bootstrap 3, теперь все работает. Я хочу проверить все разработки теста с помощью php Unit!Тестирование плагина CakePhp3 -> Ошибка загрузки плагина/отсутствующего класса

Но когда я называю блок PHP это говорит, что он не нашел класс так:

Фатальная ошибка: 'BsHelpers \ View \ Helper \ BsHelper' Класс не найден в C: \ wamp3 \ WWW \ wac_lucien \ BsHelpers \ BsHelpersCakePHP3 \ 3.2 \ Plugins \ BsHelpers \ тесты \ TestCase \ View \ Helper \ BsHelpersTest.php на линии 26

Так после попытки следовать точно документации от CakePHP3 я встречаю проблему на begenning. На данный момент я только получил это:

<?php 
namespace BsHelpers\Test\TestCase\View\Helper; 

use BsHelpers\View\Helper\BsHelper; 
use Cake\TestSuite\TestCase; 
use Cake\View\View; 

class BsHelperTest extends TestCase 
{ 
    public function setUp() 
    { 
     parent::setUp(); 

     $this->View = new View(); 
     $this->Bs = new BsHelper($this->View); 
    } 

    public function testBar() 
    { 

    } 
} 

Я думаю, проблема может быть в bootstrap.php. Путь плагина загрузчика может быть ложным, но я не знаю, как настроить ...

Plugin::load('BsHelpers', ['path' => ROOT . DS]); 

В composer.json моего плагина я получил:

"autoload": { 
    "psr-4": { 
     "App\\": "src", 
     "BsHelpers\\": "./plugins/BsHelpers/src", 
     "BsHelpers\\Test\\": "./plugins/BsHelpers/tests" 
    } 
}, 

Призываю PHP модульное тестирование делать (в моей папке плагина)

vendor\bin\phpunit 

И мой phpunit.xml.dist выглядит

<phpunit 
colors="true" 
stopOnFailure="false" 
bootstrap="./tests/bootstrap.php" 
> 

<testsuites> 
    <testsuite name="BsHelpers Test Cases"> 
     <directory>./tests/</directory> 
    </testsuite> 
</testsuites> 

<filter> 
    <whitelist> 
     <directory suffix=".php">./src/</directory> 
    </whitelist> 
</filter> 

Любая идея, почему я не могу получить доступ к моему помощнику во время выполнения моего теста?

Pls ребята мне действительно нужны идеи

+0

Похоже, что ваша конфигурация автозагрузки ('composer.json') неверна или вы не используете правильный автозагрузчик композитора из папки поставщика плагинов. Без дополнительной информации об упомянутых возможных проблемах и некоторых подробностях о том, как вы на самом деле запускаете тесты/вызываете phpunit, практически невозможно, чтобы кто-либо делал что-либо, кроме угадывания. – ndm

+0

Хорошо, прошу прощения за информацию! Я добавлю это к первому вопросу! –

+0

Этот файл выглядит странно, он больше похож на файл композитора на уровне приложения, а не на один из плагинов !? Вы разрабатываете автономный плагин или это часть приложения? Также как/где вы загружаете автозагрузчик ('vendor/autoload.php')? – ndm

ответ

0

UPDATE

Я попытался снова запустить тесты. Я нашел ошибку и изменил строку, но я не понимаю, почему это давало проблемы в тестах.

Первоначально я попытался понять плагины CakePHP3, работая с this plugin from friendsofcake, когда я сделал свой плагин (чтобы добавить больше функциональных возможностей), я просто скопировал композитор.json, чтобы увидеть результат с моим плагином. Просто забудьте изменить эту часть.

Так ошибка в composer.json плагина:

{ 
"name": "friendsofcake/bootstrap-ui", 
"description": "Twitter Bootstrap 3 support for CakePHP 3", 
"type": "cakephp-plugin" 
} 

Я изменил название линии с

"name": "lucienleroux/bs-helpers", 

И я действительно не понимаю, почему это не решило проблему, потому что нигде Я устанавливаю имя как «lucienleroux/bs-helpers» в моем плагине. И на самом деле он работает с любой другой строкой, такой как «test/bs_helpers» ... Если вы понимаете, что меня интересует ответ!