Не получается подружить YiiBoilerplate и Codeception

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Vasko
Сообщения: 36
Зарегистрирован: 2013.03.27, 10:47

Не получается подружить YiiBoilerplate и Codeception

Сообщение Vasko »

Сабж.
Собственно пытаюсь прикрутить Codeception, на данном этапе есть что тестировать только в админке. И если приемочные тесты проходят спокойно, то функциональные нет. Вот конфиг functional.suite.yml

Код: Выделить всё

class_name: TestGuy
modules:
    enabled: [Yii1, TestHelper]
    config:
        Yii1:
            appPath: '/home/vasko/www/site/backend/www/index.php'
            url: 'http://admin.site.local/index.php'
При попытке запустить простенький тест из примера, в консоль вываливается ошибка "Путь CAssetManager.basePath "/home/vasko/www/site/assets" задан неверно."
Оно и понятно, что паки assets там быть не может, т.к. она лежит в /home/vasko/www/site/backend/www
Смотрел сам модуль Yii1, там нигде вроде не захардкожен путь. Приложение-то запускается нормально, а в консоли такая беда, вот..

Никто не сталкивался с такой связкой? Может кто-то уже решил подобную проблему?
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Skiller »

Да, известная проблема(в конце комментирий есть https://github.com/Codeception/Codeception/issues/208) связанная с url: http://admin.site.local там в коде (в Yii1 клиенте) пока что захардкодено http://localhost. так что пока беда, да. Но вы можете отправить PR и его с радостью рассмотрят ;) К сожалению у меня просто не так много времени чтобы все тикеты закрыть, там их всего лишь 4, но все же.
P.S. проверьте кстати как у вас действует поиск на странице слов из кириллицы, а то иногда почему то не находит, хотя они на странице есть, я вот и понять не могу, это у меня баг, или что-то криво в самом модуле)
Vasko
Сообщения: 36
Зарегистрирован: 2013.03.27, 10:47

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Vasko »

Спасибо, попробую найти, исправить и отправить реквест)
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Skiller »

Да, это несложно сделать, добавить новый параметр host в модуль, и в клиенте Yii1 заменить localhost на host из конфига) но время.... время... его вечно не хватает)) Кстати кириллицу тоже проверьте как с ней у вас модуль работает) и да, Yii1 модуль не использует curl (т.е. не нужно запускать веб-сервер, что-то сходное с symfony functional-тестами)! Если что можете также использовать PhpBrowser он через Mink работает, но нужно curl+веб-сервер для него, да. ))
Vasko
Сообщения: 36
Зарегистрирован: 2013.03.27, 10:47

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Vasko »

Мне проще, это относится непосредственно к рабочему времени) Конечно, хотелось прицепить готовую платформу для тестирования к готовой сборке и радоваться, но коллега пока допиливает boilerpalte, каким ему хочется его видеть, мне можно заняться допиливанием codeception)
Спасибо за помощь и заметки в конце поста)))
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Skiller »

Хм) и проверьте кстати верно ли у вас еще путь до assets, а то немного странный он какой-то ;)
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Skiller »

Кстати, для тех кто хочет поддержку Codeception из коробки для Yii2, то писать надо тут: https://github.com/yiisoft/yii2/issues/45 )
Vasko
Сообщения: 36
Зарегистрирован: 2013.03.27, 10:47

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Vasko »

Skiller писал(а):Хм) и проверьте кстати верно ли у вас еще путь до assets, а то немного странный он какой-то ;)
Я вчера так и подумал, что Вы меня не совсем правильно поняли) Вопрос был конкретно по boilerplate, там иная структура проекта, собственно по этой причине и не находится папка assets, если она найдется, то, думаю, вылезут еще и еще ошибки. Когда разберусь, если не плюну, опишу как, что и почему)
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Skiller »

Дак задайте путь через конфиг то)
http://www.yiiframework.com/doc/api/1.1 ... ath-detail
P.S. и проверьте точно ли у вас Yii1::basePath указывает на путь к приложению, это должен быть именно путь к entry-script.
Vasko
Сообщения: 36
Зарегистрирован: 2013.03.27, 10:47

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Vasko »

Спасибо за подсказку с assets, я что-то подумал, что если по-умолчанию ловит путь (по сути строит относительно индекс.пхп), то и в тестах должен заработать так же. Исправил, есетесственно посыпались другие ошибки из той же серии, попробую исправить все и расписать здесь.
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Skiller »

хм, даже интересно что там за ошибки у вас, вот например у меня так выглядит конфиг functional.yaml:
Yii1:
url: 'http://localhost/{some_my_test_app}/index-codecept.php'
appPath: '../../../index-codecept.php'
т.е. можно в appPath относительно путь задать. Вы в index-файле правильно все сделали? там нужно вконце просто вернуть массив с настройками для модуля вида class=>... config=>...?
Vasko
Сообщения: 36
Зарегистрирован: 2013.03.27, 10:47

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Vasko »

Вроде да... Вот мой индекс-тест

Код: Выделить всё

defined('YII_DEBUG') or define('YII_DEBUG',true);
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);

// On dev display all errors
if(YII_DEBUG) {
    error_reporting(-1);
    ini_set('display_errors', true);
}

date_default_timezone_set('Europe/Moscow');

chdir(dirname(__FILE__).'/../..');

$root=dirname(__FILE__).'/..';
$common=$root.'/../common';

require_once($common.'/lib/Yii/yii.php');
$config=require('backend/config/main.php');
require_once($common.'/components/WebApplication.php');
require_once('common/lib/global.php');


return array(
    'class' => 'WebApplication',
    'config' => 'backend/config/main.php',
);
 
Vasko
Сообщения: 36
Зарегистрирован: 2013.03.27, 10:47

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Vasko »

А это конфиг functional.suite.yml (отличается от того, что указал вверху, т.к. там я просто пробовал и редактировал index.php, потом уже вынес в индекс-тест)

Код: Выделить всё

class_name: TestGuy
modules:
    enabled: [Yii1, TestHelper]
    config:
        Yii1:
            appPath: '/home/vasko/www/site/backend/www/index-test.php'
            url: 'http://admin.site.local/index-test.php'
Vasko
Сообщения: 36
Зарегистрирован: 2013.03.27, 10:47

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Vasko »

На данном этапе ошибка "[CException] Application base path "protected" is not a valid directory." Это значение по умолчанию, хотя в конфиге приложения указан basePath как backend
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Skiller »

Эх, боюсь тут больше наверное стоит самостоятельно покопать boilerplate =( ну или пока если время не терпит, то используйте чтоли PhpBrowser он через curl все прогоняет и Mink. нужно вам только веб-сервер как понимаете)
Vasko
Сообщения: 36
Зарегистрирован: 2013.03.27, 10:47

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Vasko »

Пока можно и забить, задачи и помимо этого есть, например, конвертер из MySQL в PostgreSQL со старой схемы в новую и без тестов проживет.. Я день еще потрачу, а там видно будет. Спасибо за помощь, если сами докопаетесь до чего - напишите, плиз:)
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: Не получается подружить YiiBoilerplate и Codeception

Сообщение Skiller »

Если честно думаю не докопаюсь, т.к. я не использую boilerplate( но постараюсь пофиксить оставшиеся на github issues asap =)
Ответить