Borys
Niko
так это они
Anonymous
Боже, опять новичок доказывает практику что нету никаких транзакций ВЫ ВСЁ ВРЕТИИИИ
Borys
Borys
Это чудо, уверуйте братья.
Borys
Anonymous
Borys
Niko
Niko
я серьезно не могу найти штормом реализация safeUp в vendor
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
)))
Borys
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 🇺🇦
сбилдил. нихуа
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? У миграций же нету неймспецса
Borys
Good
Да, ну типа можно, но мне же раз вызвать только.
Dmitriy
Dmitry
Good
Почему говнокод? Как раз говнокод - это писать еще раз то, что в методе SafeDown() уже етсь
Dmytro 🇺🇦
в данном случае не требуется. идешка даж говорит, что "not necessary"
Dmytro 🇺🇦
use frontend\tests\FunctionalTester;
Dmytro 🇺🇦
Где вообще неймспейсы?
Good
Нет, я могу скопировать, но зачем?
Dmytro 🇺🇦
ну сделаю я use FunctionalTester
Dmytro 🇺🇦
и толку 0
Dmytro 🇺🇦
те же яйца, только в профиль
Ivan
Ну так в FunctionalTester тоже должны быть неймспейсы, что бы смог загрузить их
Good
У меня есть миграция для создания таблицы, теперь хочу ее удалить. Соответственно, использовать ее метод safeDown()
Dmytro 🇺🇦
вот в нем их нет. я поэтому пытаюсь спросить - кохуа
Ivan
ну так пропиши
Dmytro 🇺🇦
с AcceptanceTester все норм - но в нем тоже нет неймспейсов
Good
Dmitry
Good
И чтоб два раза не писать одно и то же - хочу переиспользовать
Dmitry
они должны последовательно исполнятся
Good
Блин
Good
Я знаю
Dmitry
Good
Но в методе ж все то же самое, что я хочу сейчас сделать
Good
Понимаете7
Good
Она уже в гите есть
Good
Ну то есть закоммитил уже
Ivan
Павел
Dmytro 🇺🇦
Да, бэйсик
Павел
Закоммитил свою миграцию?
Dmytro 🇺🇦
забыл сразу сказать, сорри