Решил я приобщиться к прекрасному и начать использовать тесты в Yii2 с codeception, да только все никак. То одно, то другое, капец просто.
Создал простой тест:
Код: Выделить всё
use tests\codeception\frontend\AcceptanceTester;
use yii\helpers\Url;
$I = new AcceptanceTester($scenario);
$I->wantTo('Main page is work');
$I->amOnPage(Url::to(['/']));
$I->see('This is h1 of my site', 'h1');
Т.е.:
1) Если в файле acceptance.suit.yml параметр url указать реальный урл типа http://mydevdomain.com, то запрос уходит на адрес http://mydevdomain.com/frontend/web/index-test.php и соответственно там возникает 404. Тогда в файле codeception.yml я изменил параметр test_entry_url: http://localhost:8080/frontend/web/index-test.php так, чтоб не было frontent/web. И запросы вообще перестали уходить. Т.е. до этого я их видел в mydevdomain.com/debug, а теперь перестал. Я менял и localhost и во всех других местах и файлах в разных вариациях разные параметры, но так или иначе, либо запрос приходит неверный либо не приходит.
2) Пошел другим путем. Запустил как написано в readme.md
Код: Выделить всё
php -S localhost:8080
Люди, помогите, очень слезно прошу. Я на грани отчаяния.
----
P.S. А кто как вообще тестит? Вписываете какой-то свой адрес дев-сервера или юзаете localhost:8080? А как его запустить в фоне? Мне сейчас нужно открывать еще один терминал и в нем запускать сервер, который "висит и слушает". Если я нажму ctrl+c, то все капец. В итоге у меня в одном теминале php -S localhost:8080, в другом я запускаю codecept run. Как это не очень удобно? Это у всех так или я один такой неуклюжий?
P.P.S. Yii::Url() в самом тесте появился в результате всяких долгих экспериментов. Если это как-то не фэн-шуйно, скажите как надо, плз. Как-то хочется юзать Йишные роуты. На оф.сайту Codeception наткнулся на модуль интеграции с Yii2. Там в методе amOnPage() можно аргументов передавать либо строку либо массив, как в Url::to(). Но этот модуль по-умолчанию отсутствует в Yii2.
P.P.P.S. А потом спрашивают, почему так мало программистов покрывают свой код тестами. Блин, да тут пока расчехлишься. С самого утра и уже пол-второго ночи. То одна ошибка, то другая. Победил, третья возникает и так бесконечно.