Как загрузить фикстуру из advanced-шаблона?

Всё про тестирование в Yii 2.0
Ответить
Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Как загрузить фикстуру из advanced-шаблона?

Сообщение Nicolai6120 » 2017.01.29, 17:43

То ли я дурак, то ли телега не едет.

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

php yii fixture User --namespace='common\fixtures'
Ответ:

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

Some fixtures were not found under path:
        /var/www/t.dev/common/fixtures

Check that they have correct namespace "common\fixtures" 
        1. User

Error: No files were found for: "User".
Check that files exist under fixtures path: 
"/var/www/t.dev/common/fixtures".
Ну что за ... ?

Именно в /var/www/t.dev/common/fixtures и лежит User.php (фикстура)

и нэймспейс его common\fixtures

Аватара пользователя
ElisDN
Сообщения: 5411
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение ElisDN » 2017.01.30, 06:50

А зачем их вручную загружать?

Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение Nicolai6120 » 2017.01.30, 12:32

Я если честно, думал, что так работают с данными во время разработки. Чтобы в миграциях только структура была. Просто я пытаюсь разобраться в том как применять миграции и пока не могу понять как оперировать данными в этом контексте. Если их пихать в миграции, будет огромная куча проблем. А если дампы целиком в VCS запихивать то тогда нафига нужны миграции (одновременно и дампы и миграции использовать не вижу возможности)??

Я вот сейчас создал функционал для авторизации через соц. сети, а как мне его тестировать (без применения тестов, просто по-старинке, ведь не везде нужно и можно тесты писать) если нет пользователей? Нужно их добавить, а как? Просто себе в базу добавить пару записей? А тот кто после меня будет этот функционал изменять тоже будет у себя локально генерить данные? Я вот и думал что для этих целей придумали фикстуры (ну естественно и для автоматических тестов тоже).

Если честно запутался и не понимаю workflow работы с миграциями и данными при работе в команде.

Аватара пользователя
ElisDN
Сообщения: 5411
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение ElisDN » 2017.01.30, 13:10

Nicolai6120 писал(а):
2017.01.30, 12:32
Я вот и думал что для этих целей придумали фикстуры (ну естественно и для автоматических тестов тоже).
Они придуманы именно для автоматических тестов.
Nicolai6120 писал(а):
2017.01.30, 12:32
Просто себе в базу добавить пару записей?
Да, просто добавить вручную.
Nicolai6120 писал(а):
2017.01.30, 12:32
А тот кто после меня будет этот функционал изменять тоже будет у себя локально генерить данные?
Тоже добавит пару записей. У него же собственные профили в соцсетях будут. А если понадобится - сольёт дамп с общего девелоперского сервера.

Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение Nicolai6120 » 2017.01.30, 14:45

Задавал такой вопрос на тостере, там советуют иначе. Говорят, что фикстуры можно не только для автоматических тестов использовать. И это логично по идее. Почему ограничивать себя в применении? Взгляните на тему:

https://toster.ru/q/392557

НЕ утверждаю что ВЫ советуете мне что-то не то, просто хотелось бы аргументированного мнения, почему нельзя фикстуры использовать без тестов? Пример про профили в соц. сетях не очевидный. Я не только для этого хочу создать пользователей через фикстуры но и для тестирования (не автоматического) RBAC.
Последний раз редактировалось Nicolai6120 2017.01.30, 14:50, всего редактировалось 1 раз.

Аватара пользователя
ElisDN
Сообщения: 5411
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение ElisDN » 2017.01.30, 14:50

Nicolai6120 писал(а):
2017.01.30, 14:45
Задавал такой вопрос на тостере, там советуют иначе. Говорят, что фикстуры можно не только для автоматических тестов использовать. И это логично по идее. Почему ограничивать себя в применении?
Там же:
Организация зависит от команды в которой Вы работаете, точнее от договоренностей между ее участниками.

Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение Nicolai6120 » 2017.01.30, 14:54

Согласен... Но Вы ведь мне задали вопрос. Зачем загружать фикстуры вручную, я пытаюсь объяснить. чтобы не было необходимости данные вручную создавать. Сгенерировал один раз много много данных через faker и тестируй на них в свое удовольствие. Мне кажется это неплохой вариант (опять же не утверждаю, что вручную нельзя). Так вот, а ответа на свой основной вопрос не получил. Вы не знаете, почему так происходит при загрузке?

Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение Nicolai6120 » 2017.01.30, 14:58

И еще, если обратите внимание, в той теме мне советуют роли присваивать через фикстуры, логично же, что если роли через фикстуры, то и пользователей создать нужно через фикстуры, иначе мне кажется не получится, так как у всех будет разброд юзеров а ассоциация через общую для всех фикстуру.

Аватара пользователя
ElisDN
Сообщения: 5411
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение ElisDN » 2017.01.30, 15:12

Nicolai6120 писал(а):
2017.01.30, 14:54
...чтобы не было необходимости данные вручную создавать. Сгенерировал один раз много много данных через faker и тестируй на них в свое удовольствие.
Ну нагенерируйте себе сотни данных и тестируйте. Закомитьте свои templates, чтобы другие программисты по ним свои наборы создавали. Просто не вижу смысла эти "много много данных" к проекту прикладывать.
Nicolai6120 писал(а):
2017.01.30, 14:54
И еще, если обратите внимание, в той теме мне советуют роли присваивать через фикстуры
Мне консольного контроллера хватает с действиями assign и revoke, чтобы любую роль к любому пользователю привязать.

Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение Nicolai6120 » 2017.01.30, 15:29

У меня не стоит задача привязать роли. Это хорошо в документации описано.

А если хочу чтобы эти же записи были просто репрезентативными. У меня задача сделать у всех разработчиков пяток записей (общих для всех тестовых юзеров), на которых они продолжат разработку связанных компонентов приложения (профили, рейтинги и так далее) и чтобы заказчик открыл админку и в ней своими ручками потыкал юзеров и роли их. Понятное дело для этого я напишу свой контроллер, но данные то контоллер не занесет мне в базу. Вот я и хочу фикстуру использовать - просто и со вкусом вроде бы.


Nicolai6120
Сообщения: 143
Зарегистрирован: 2014.08.13, 15:08

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение Nicolai6120 » 2017.01.30, 16:24

А проблема была в том что ошибка в названии фикстуры. Должно быть UserFixture. Это в advanced шаблоне косяк.

Аватара пользователя
samdark
Администратор
Сообщения: 9175
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Как загрузить фикстуру из advanced-шаблона?

Сообщение samdark » 2017.01.30, 18:42

Если поправите и сделаете pull request, будет замечательно...

Ответить