
Alexey
24.08.2017
07:41:03

Андрэ
24.08.2017
07:41:18

Alexey
24.08.2017
07:41:45
сейчас минут в 15 укладывается

Evgeny
24.08.2017
07:42:14
а что за миграции перед тестами?

Google

Alexey
24.08.2017
07:42:39
ну всмысле подготовки базы, фикстуры и тд

Evgeny
24.08.2017
07:44:14
на постгресе я делал truncate всех таблиц (там он умный кстати, список передаешь он их в правильном порядке очищает), пересоздавать вообще долго, а так 50-80 мс на тест

Андрэ
24.08.2017
07:44:24
ну вот и я про это, что надо очищать а не миграции гонять

Виталий
24.08.2017
08:06:46

Alexander
24.08.2017
08:10:47
мне проще делать через drop table + create table

Виталий
24.08.2017
08:11:13
Это же миграция практически

Alexander
24.08.2017
08:11:14
если схема меняется, то пилим рядом другой sql файл с новой схемой, полученной через экспорт

Evgeny
24.08.2017
08:12:15
а как вы порядок удаления таблиц в mysql соблюдаете кстати?

Яўген
24.08.2017
08:13:26
так чем не устраивает вариант после каждого сценария автоматически чистить измененные таблицы?

Alexander
24.08.2017
08:13:28
я просто вызовы drop table в нужном порядке ставлю. у меня редко бывает такое, что в одном тесте используется более трех таблиц
поэтому в методе setup сначала идут вызовы drop table, потом create table. если тест упал, то у меня остаются данные, на которых тест не прошел

Яўген
24.08.2017
08:15:02
дропать и создавать - очень медленно

Google

Яўген
24.08.2017
08:16:01
кстати, delete * еще быстрее

Alexander
24.08.2017
08:17:02
на SSD норм. разница в выполнении с тестом в котором есть drop и без такого теста -- ~0.5 скунды

Яўген
24.08.2017
08:17:37
разработчики тоже должны програть тесты...

Alexey
24.08.2017
08:17:47
это же очень долго

Виталий
24.08.2017
08:18:14

Evgeny
24.08.2017
08:18:17
а разработчику все не надо прогонять, можно отдельно запустить несколько связанных тестов

Alexander
24.08.2017
08:18:30

Яўген
24.08.2017
08:19:09
ну, ваше решение

Alexander
24.08.2017
08:20:26
вообще, на мой взгляд, если очень много тестов зависят от БД, значит что-то пошло не так в архитектуре
ну или в проекте около сотни таблиц

Виталий
24.08.2017
08:23:17
Кажется, количество интеграционных тестов зависит от количества сценариев использования, а не от архитектуры. Или вы через БД тестируете компоненты?

Alexander
24.08.2017
08:25:26
через бд я тестирую только слой взаимодействия с бд -- репозитории в основном
для всего остального меняю репозитории работающие с бд на memory и забиваю оперативку
еще вариант можно поднять инстанс сервера бд у которого вместо записи на физ. диск будет запись в такую штуку
https://www.cyberciti.biz/faq/howto-create-linux-ram-disk-filesystem/

Андрэ
24.08.2017
08:27:16
ну к примеру, при опреденном обращении к одному роуту, по событию должна идти запись в одну из таблиц. вот и проверяю в бд прямо

Ягнёнок
24.08.2017
08:27:25
Здрасти

Kirill
24.08.2017
08:27:51
приветики

Ягнёнок
24.08.2017
08:28:08
Ребят
Чем парсить html страницу, которая меняет селекторы раз в несколько часов?

$iD
24.08.2017
08:28:44
symfony/dom-crawler

Ягнёнок
24.08.2017
08:29:13

Google

Андрэ
24.08.2017
08:29:48
а какая разница чем парсить страницу? меняет она селекторы или нет, что, в чем разница?

Alexander
24.08.2017
08:29:55
Какая разница чем парсить. У тебя проблема в том что селекторы меняются раз в несколько часов, а не в том "чем парсить"

Виталий
24.08.2017
08:30:26

Alexander
24.08.2017
08:31:19

Борис
24.08.2017
08:32:00
Парсить HTML на страницах это неуважение к брату :( У тех кого вы парсите точно АПИ нету?

Alexander
24.08.2017
08:32:41

Ягнёнок
24.08.2017
08:33:53

Alexander
24.08.2017
08:33:57
такое часто можно встретить у букмекиров. Есть такое понятие "Вилки", это когда на разнице коэф в разных конторах, пожно поставить так что при любом раскладе будет профит.
Букмекеры меняют html чтобы их не парсили

Alexander
24.08.2017
08:34:32

Alexander
24.08.2017
08:34:39
Или к примеру бесплатные списки прокси. Там тоже часто можно встретить защиту от парсинга в таком виде.

Андрэ
24.08.2017
08:36:19
Хотя сильно зависит от ситуации. может меняют только селекторы, тогда регулярками можно поработать

Яўген
24.08.2017
08:36:36
одним из преимуществ микросервисной архитектуры, кстати, указывают то, что тесты для каждого сервиса обособлены и проходят горааааздо быстрее

Alexander
24.08.2017
08:37:41
но там часто порт картинкой сделан)

Alexander
24.08.2017
08:38:19

Ягнёнок
24.08.2017
08:38:28
не меняется только структура

Андрэ
24.08.2017
08:38:54
если ты глазами надешь какие-то закономерности, как инфу получить со страницы, то скорее всего это можно запрограммировать

Google

Alexander
24.08.2017
08:39:12

dypa
24.08.2017
08:39:33

Alexander
24.08.2017
08:39:37

Alexander
24.08.2017
08:39:53

Alexander
24.08.2017
08:40:03
а
не учел, что там могут быть в hidden
и вылезут лишние символы тогда

Alexander
24.08.2017
08:40:37
strip_tags
и получится 192.168.162.324.034.145. Так тоже не получится. Там глубже надо смотреть.

Андрэ
24.08.2017
08:40:47

Alexander
24.08.2017
08:42:09
Подскажите, что означает Missing function doc comment?

Alexander
24.08.2017
08:42:09

Sergey
24.08.2017
08:42:18
а по мне так лучше вкорячить CSS Selector -> XPath, все таки с селекторами удобнее работать

Ягнёнок
24.08.2017
08:49:03
Блин как объяснить
Есть страница
Там
<div class="23dkfdjfkfjdfkjw3rfefvkj">
<div class="lwjp234jb53jb25b3j4kb">
</div></div>
Внутри <div>ов информация которую нужно вытащить, структура самого сайта не меняется, то есть все блоки всегда на своих местах
Вот каким средством можно сделать так что бы выбрать html->body->вот тут выбрать div третий сверху -> и тут div второй например?

Андрэ
24.08.2017
08:49:44
regex

Alexander
24.08.2017
08:50:30
Через XPath /div[2]/diiv[1]/span[2]

Ягнёнок
24.08.2017
08:51:12

Alexander
24.08.2017
08:52:50
Еще есть :nth-child()

Андрэ
24.08.2017
08:52:55
А что значит "сяп"? Спасиб типа?

Ягнёнок
24.08.2017
08:53:11

Андрэ
24.08.2017
08:53:32
пойду блесну в нашем чатике старперов. сяп

Google

Kirill
24.08.2017
09:03:28
?

⚡️???⚡️
24.08.2017
09:49:11

Dmitry
24.08.2017
11:11:05

Иван
24.08.2017
11:12:52
Первый как раз построен на основе Symfony Crawler

Timur
24.08.2017
13:19:15
помогите пожалуйста
// Use your knowledge of strlen(), substr(), and rand() to
// print a random character from your name to the screen.
$name = "Timur";
$part= strlen($name)-1;
print $part;
$if=substr($name,rand(0,$part),5);
print $if;
$og=rand(0,$part),5);
print $og;

Alexander
24.08.2017
13:20:44
ну и с чем помочь то?

Андрэ
24.08.2017
13:21:13
Я думал, человек не дописал просто
А он и молчит дальше

Timur
24.08.2017
13:22:35
что-то неверно, не пропускает задание, с пометкой Oops, try again. The random output you printed from your name should be a letter.

Андрэ
24.08.2017
13:23:08
rand возвращает число. Все ок
$og=rand(0,$part),5); это вооще работает?

Timur
24.08.2017
13:28:22
нет parse eror какой-то

Андрэ
24.08.2017
13:28:29
странно