@symfony_php

Страница 497 из 1418
Sergey
15.12.2017
22:47:39
один раз сгенерил базу в гигов 10, и запускаешь на ней раз в месяц)

Gaiaz Iusipov
15.12.2017
22:47:48
у нас сегодня тесты упали где mt_rand(0, 9999) и выпало 9999 - как раз на этом конкретном числе тест падает))

ща я вам про контейнер нагуглю))

Dinar
15.12.2017
22:48:04
Но ее же надо откатывать обратно все равно.

Google
Vladislav
15.12.2017
22:48:07
он походу говорил персистент волюм

Dinar
15.12.2017
22:48:23
Ну который мапится на хост системе.

Sergey
15.12.2017
22:48:40
ща я вам про контейнер нагуглю))
ты про слои которые удаляются вместе с контейнером?

Sergey
15.12.2017
22:48:44
у нас сегодня тесты упали где mt_rand(0, 9999) и выпало 9999 - как раз на этом конкретном числе тест падает))
хороший тест должен быть: - изолирован - тестировать что-то одно, что бы если он упал ты быстро понимал почему - повторяем - то есть если ты запустишь тест N раз результат будет одинаковым.

ну и там еще есть требования

Dinar
15.12.2017
22:48:54
В любом случае меняя ее в докере будет меняться в хосте.

Sergey
15.12.2017
22:49:47
он походу говорил персистент волюм
нет такого понятия, есть волум. Ты можешь именованный волум сделать если хочешь (думаю ты это имел ввиду)

Dinar
15.12.2017
22:49:57
Оно ж в любом случае быстрее не будет работать.

Sergey
15.12.2017
22:50:04
В любом случае меняя ее в докере будет меняться в хосте.
ты всегда можешь делать копии волумов

Vladislav
15.12.2017
22:50:12
не, там есть плагин.

Sergey
15.12.2017
22:50:30
Dinar
15.12.2017
22:50:39
ты всегда можешь делать копии волумов
Ну копии надо делать. А 10 гигов будет минут 20 наверно делаться.

Google
Sergey
15.12.2017
22:51:09
Ну копии надо делать. А 10 гигов будет минут 20 наверно делаться.
тебе стоит сменить хостинг-провайдера с такими дисками

Dinar
15.12.2017
22:51:24
Я про локалку. :)

Gaiaz Iusipov
15.12.2017
22:51:32
а ну data containers, ну да в общем просто контейнер где данные лежат и монтируется все через тот же volume https://medium.com/@ramangupta/why-docker-data-containers-are-good-589b3c6c749e

Sergey
15.12.2017
22:51:40
локально тем более, 10 гигов на SSD будут копироваться пару секунд.

в целом можно еще дамп базы делать

куча всего

Dinar
15.12.2017
22:51:56
Ну в любом случае объясни как тут докер может что то ускорить?

Sergey
15.12.2017
22:51:59
но это не для функциональных тестов нужн

Dinar
15.12.2017
22:52:06
Процессы же происходят те же

Sergey
15.12.2017
22:52:37
Ну в любом случае объясни как тут докер может что то ускорить?
хз, у меня просто приложение в докере запускается)

Dinar
15.12.2017
22:52:40
Я ж про ускорение с помощью докера.

Sergey
15.12.2017
22:52:46
а сам по себе докер позволяет кучу мелочей проще сделать

например "поднять постгрес в памяти"

Sergey
15.12.2017
22:52:53
https://www.testcontainers.org/

Dinar
15.12.2017
22:52:56
Это да.

Sergey
15.12.2017
22:52:57
оставлю это тут

Dinar
15.12.2017
22:53:00
Мы тоже в докере.

И Петр проекты у меня тоже.

Gaiaz Iusipov
15.12.2017
22:53:11
Ну в любом случае объясни как тут докер может что то ускорить?
очень просто, данные базы лежат в фс в контейнере и когда надо просто подключаются и готово

Sergey
15.12.2017
22:53:23
а хоть кто-то на rkt есть?)

Google
Sergey
15.12.2017
22:53:31
а то докеры да докеры

Dinar
15.12.2017
22:53:35
И чем отличается от обычного БД контейнера?

Gaiaz Iusipov
15.12.2017
22:54:35
А они разве не меняются в тесте?
меняются, но "image" данных мы не трогаем, докер просто дает возможность охранить слепок фс с уже загруженными фикстурами

Sergey
15.12.2017
22:54:39
очень просто, данные базы лежат в фс в контейнере и когда надо просто подключаются и готово
у тебя есть например 100-200 тест кейсов. Каждому нужен свой сэт данных. Если ты будешь 100-200 раз переподнимать контейнер ты явно не выйграешь в производительности. Намного лучше инвестировать в паралелизацию через контейнеры

Sergey
15.12.2017
22:55:16
что-то у тебя и люди и кони смешались
он предлагает поднять контейнер с базой и закоммитить. в этом случае ты получишь сэт данных в качестве снэпшета

это быстро

Sergey
15.12.2017
22:55:18
ты зашил данные в слои образа, при чем тут волюмы?

Gaiaz Iusipov
15.12.2017
22:55:23
в общем вот 5 часовое видео, про эту хрень где-то на последнем часу рассказывают watch?v=tQ8F7d2VACU

Sergey
15.12.2017
22:55:27
но в контексте тестов - в этом нет смысла

Sergey
15.12.2017
22:55:41
только если для тестов тебе не нужны большие объемы данных

Gaiaz Iusipov
15.12.2017
22:56:06
ты зашил данные в слои образа, при чем тут волюмы?
ну он как волюм подцепляется в основной контейнер

(на сколько я понял)

Dinar
15.12.2017
22:56:18
Это должны быть очень интересные проекты. :)

Vladislav
15.12.2017
22:56:53
с докером я бы не запускал такое, потом окажется что память закончилась

Gaiaz Iusipov
15.12.2017
22:57:01
у нас тесты полтора часа прогоняются, но чаще падают

:D

Google
Sergey
15.12.2017
22:57:52
ну он как волюм подцепляется в основной контейнер
если ты подключишь волюм на то место где хранятся данные, то ты просто перезапишешь эти данные тем что в волюме

Gaiaz Iusipov
15.12.2017
22:57:53
с докером я бы не запускал такое, потом окажется что память закончилась
что с памятью будет, это просто способ быстро фикстуры поднять

Sergey
15.12.2017
22:58:32
Sergey
15.12.2017
22:58:47
я тоже запутался) но идея в том что бы готовые снэпшеты юзать)
ну это только если ты загонишь данные в слой образа

и тогда если даже будешь писать в них в контейнере

Sergey
15.12.2017
22:58:57
Sergey
15.12.2017
22:59:00
то они удалятся вместе с контейнерами

Admin
ERROR: S client not available

Sergey
15.12.2017
22:59:08
только тебе придется перед запуском тестов делать копию

Sergey
15.12.2017
22:59:10
не через волумы тоже можно
волумы персистентны

Vladislav
15.12.2017
22:59:11
с докером я бы не запускал такое, потом окажется что память закончилась
в какой-то версии докера у меня при удалении контейнеров память не чистилась

Vladislav
15.12.2017
22:59:18
сервер сдох

Gaiaz Iusipov
15.12.2017
22:59:27
ну короче я сдаюсь, по поводу места куда монтировать я не знаю, видео выше - 5 часов, с 4го часа гдето ближе к концу рассказывали про это

Sergey
15.12.2017
22:59:46
я с тем же успехом сделаю scp команду из одного раздела в другой

зачем тут докер?

Gaiaz Iusipov
15.12.2017
23:00:02
в общем то да

Google
Vladislav
15.12.2017
23:00:09
а можно просто положить куда-то данные и для теста делать cp

Sergey
15.12.2017
23:00:27
да пардон, оно ж на одном диске, так вообще cp)

Vladislav
15.12.2017
23:00:29
хотя если их оч много, то не

Dinar
15.12.2017
23:00:39
Вот мне интересно насколько реально хуже просто транзакции откатывать?

Vladislav
15.12.2017
23:00:54
Вот мне интересно насколько реально хуже просто транзакции откатывать?
та мы говорим вообще про какие-то абстрактные данные

Dinar
15.12.2017
23:00:54
Насколько это быстро.

Sergey
15.12.2017
23:01:02
Вот мне интересно насколько реально хуже просто транзакции откатывать?
если ты в рамках операции работаешь только с одной базой - норм че

Sergey
15.12.2017
23:01:15
https://github.com/symfony/demo/blob/master/phpunit.xml.dist#L34 симфони у себя такое юзает

Sergey
15.12.2017
23:01:21
а если там рэдисы, мускули и всякие там эластики - уже чуть веселее

Dinar
15.12.2017
23:01:25
А в целом не быстрее обычного чтения записи?

Sergey
15.12.2017
23:01:52
А в целом не быстрее обычного чтения записи?
быстрее конечно, меньше времени на восстановление. Но в целом профит ты получишь только если у тебя набор данных одинаковый для всех тест кейсов

Dinar
15.12.2017
23:01:54
а если там рэдисы, мускули и всякие там эластики - уже чуть веселее
Вот у нас из за СОЛРа некоторые тесты получаются зависимыми.

Evgen
16.12.2017
08:29:01
ну почему же не получится, на пальца вот набросал подобный кейс https://gist.github.com/Evgenas/a963870659a37e87fd87408d812e3b02

ну например я хочу записать в бд что-то перед тестом, чтобы это потестить. в кодсэпшене достал em, и записал. в бехат так не получится)

Sergey
16.12.2017
08:38:33
> Given I am successfully logged in with email: "user@test.com" and password: "1234567"

и ты будешь такое писать в каждом стэпе? почему бы просто не писать "Given I am <some role>" или "Given I am Bob"

> When I send a GET request to "/api/users/profile" When I change something in my profile Then new data should be available for others

какой смысл юзать бихат вот так - не могу понять....

намного проще просто сделать парочку методов оберток для phpunit. Если подобное описание тестов идет из расчета "как бы что бы qa тесты писали" - ну так будут писать, не сложно ж

Evgen
16.12.2017
08:47:37
что именно не получится сделать в бехат?

так в том то и дело что все получается

Страница 497 из 1418