Niko
так это они
Niko
Глянь исходники жи.
Посомтри свои. У тебя не так как я скинул?
Anonymous
Боже, опять новичок доказывает практику что нету никаких транзакций ВЫ ВСЁ ВРЕТИИИИ
Borys
Посомтри свои. У тебя не так как я скинул?
Они на вере разрабов работают.
Borys
Это чудо, уверуйте братья.
Borys
Anonymous
Borys
Niko
Niko
я серьезно не могу найти штормом реализация safeUp в vendor
Anonymous
я серьезно не могу найти штормом реализация safeUp в vendor
https://github.com/yiisoft/yii2/blob/2.0.12/framework/db/Migration.php#L100
Anonymous
При применении миграции в MigrateController вызывается всегда метод up, т.е. если ты его не переопределил, то он попытается вызвать safeUp в оригинальном исполнении
Niko
🤔 Ну он же внутри up, а где тело метода safeUp???
Anonymous
safeUp ты в своей миграции пишешь
Niko
аа блин
Niko
сегодня голова болит. Туплю сижу
Anonymous
Т.е. если ты и up и safeUp реализуешь, то вызовется только up
Anonymous
Вот пруфы https://github.com/yiisoft/yii2/blob/2.0.12/framework/console/controllers/BaseMigrateController.php#L671
Anonymous
Всё равно лучше бы ты сам до этого дошел)) Я просто как-то копался когда интересовался)
Dmytro 🇺🇦
Гайз, есть вопрос. Кто недавно работал с codeception?
Borys
Йа
Dmitry
Йа
насколько недавно?
Dmitry
может недостачно недавно
Dmitry
)))
Dmytro 🇺🇦
В общем, в чем проблема. Забутсрапил, все ок. ассершн тесты проходят. Сгенерил класс для функционального. Смотрю в ДОКУ(дада ,я умею смотреть доки) php <?php // LoginCest.php class LoginCest { public function tryLogin (FunctionalTester $I) { $I->amOnPage('/'); $I->click('Login'); $I->fillField('Username', 'Miles'); $I->fillField('Password', 'Davis'); $I->click('Enter'); $I->see('Hello, Miles', 'h1'); // $I->seeEmailIsSent(); // only for Symfony2 } } вся херня в том, что у меня тест валится на Call to undefined method FunctionalTester::click
Dmytro 🇺🇦
т.е. не находит метод клик. тот же метод сабмит для формы - его тоже нет. втф? куда копать?
Dmytro 🇺🇦
версия кодсепшена 2.3.6
Ivan
Попробуй vendor/bin/codecept build
Ivan
Оно сгенерит класс FunctionalTester, где лежит click
Ivan
и подключить его не забудь
Dmytro 🇺🇦
сбилдил. нихуа
Dmitry
сбилдил. нихуа
покажи что у тебя в FunctionalTester
Dmytro 🇺🇦
<?php /** * Inherited Methods * @method void wantToTest($text) * @method void wantTo($text) * @method void execute($callable) * @method void expectTo($prediction) * @method void expect($prediction) * @method void amGoingTo($argumentation) * @method void am($role) * @method void lookForwardTo($achieveValue) * @method void comment($description) * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL) * * @SuppressWarnings(PHPMD) */ class FunctionalTester extends \Codeception\Actor { use _generated\FunctionalTesterActions; /** * Define custom actions here */ }
Ivan
Конфиг codeception посмотри. Возможно click это от модуля, который ты не подключил
Ivan
Ты подключил этот класс?
Dmytro 🇺🇦
Народ, я первый день в него въезжаю только :)
Ivan
use frontend\tests\FunctionalTester;
Ivan
Где вообще неймспейсы?
Good
По миграциям возможно тупой вопрос - мне нужно вызвать метод класса миграции в другой миграции (собственно, удалить таблицу, ибо передумал отдельную делать). Это только через require? У миграций же нету неймспецса
Good
Да, ну типа можно, но мне же раз вызвать только.
Good
Почему говнокод? Как раз говнокод - это писать еще раз то, что в методе SafeDown() уже етсь
Dmytro 🇺🇦
в данном случае не требуется. идешка даж говорит, что "not necessary"
Dmytro 🇺🇦
use frontend\tests\FunctionalTester;
Dmytro 🇺🇦
Где вообще неймспейсы?
Good
Нет, я могу скопировать, но зачем?
Dmytro 🇺🇦
ну сделаю я use FunctionalTester
Dmytro 🇺🇦
и толку 0
Dmytro 🇺🇦
те же яйца, только в профиль
Dmitry
Нет, я могу скопировать, но зачем?
у тебя 2 раз в миграциях одна и таже таблица удаляется?
Ivan
Ну так в FunctionalTester тоже должны быть неймспейсы, что бы смог загрузить их
Павел
Нет, я могу скопировать, но зачем?
Потому что миграция это отдельная сущность. Вот удалится предыдущая миграция и что?
Good
У меня есть миграция для создания таблицы, теперь хочу ее удалить. Соответственно, использовать ее метод safeDown()
Dmytro 🇺🇦
вот в нем их нет. я поэтому пытаюсь спросить - кохуа
Ivan
ну так пропиши
Dmytro 🇺🇦
с AcceptanceTester все норм - но в нем тоже нет неймспейсов
Good
И чтоб два раза не писать одно и то же - хочу переиспользовать
Dmitry
они должны последовательно исполнятся
Good
Блин
Good
Я знаю
Good
Но в методе ж все то же самое, что я хочу сейчас сделать
Good
Понимаете7
Dmytro 🇺🇦
ну так пропиши
какие неймспейсы я там должен прописать?)
Павел
Просто в ней именно тот код. который нужен.
Тогда просто откатить эту миграцию и не делай новую
Good
Она уже в гите есть
Dmitry
Но в методе ж все то же самое, что я хочу сейчас сделать
просто пойми что удалить таблицу в down и в up - это совсем разные вещи
Good
Ну то есть закоммитил уже
Dmitry
Ну то есть закоммитил уже
сделай еще один коммит :)
Dmytro 🇺🇦
Да, бэйсик
Павел
Закоммитил свою миграцию?
Dmytro 🇺🇦
забыл сразу сказать, сорри