
Ivan
26.05.2017
13:03:51
Думаете травис врёт?
возьмите докер

Aleksandr
26.05.2017
13:04:00

Илья
26.05.2017
13:05:07
версии go шки не разъехались?

Google

Konstantine
26.05.2017
13:05:24

Ivan
26.05.2017
13:05:56
а json откуда берешь?

Konstantine
26.05.2017
13:05:57
версии go шки не разъехались?
Сейчас на 1.7, но до этого проверял на 1.8 тоже все ок было.
Если есть возможность пробежать у кого-нибудь на 1..8 буду благодарен

Aleksandr
26.05.2017
13:05:58
написано же - json левый

Konstantine
26.05.2017
13:06:16
Еще раз говорю - на локальной машине эти же тесты пробегаются норм, тобишь с json'ом все ок
Либо то норм, то нет

Ivan
26.05.2017
13:06:27
json от запуска к запуску не меняется?
мало ли, может наживую его запрашиваешь каждый раз)

Konstantine
26.05.2017
13:07:41

Aleksandr
26.05.2017
13:08:29
ну так добавь в тест логирование - выводи json, http response

Konstantine
26.05.2017
13:09:34

Aleksandr
26.05.2017
13:10:22

Konstantine
26.05.2017
13:11:30

Google

Ivan
26.05.2017
13:23:30
только один вопрос, чем мы лучше чем тревис

Konstantine
26.05.2017
13:25:48
Вы живые)

Ivan
26.05.2017
13:28:08
блин, ну у тебя json разные. Положи его один раз в репу и гоняй на нем тесты. Что ты голову морочишь?

Konstantine
26.05.2017
13:29:15
Во, сейчас в третий раз перезапустил сборку на нем - тревисе - и все прошло успешно. Магия херова)

Ivan
26.05.2017
13:30:36
ну потому что ты делаешь запрос к стороннему API. Одному Богу известно, что он тебе выдаст. Может вообще API с ошибкой работал. У тебя задача протестить свой код или код API?

Aleksandr
26.05.2017
13:31:16
ну так добавь в тест логирование - выводи json, http response

Konstantine
26.05.2017
13:35:28

Ivan
26.05.2017
13:53:41
зачем с json-ами и прочим мудрить)

Konstantine
26.05.2017
13:54:03
Шмишно

Kirill
26.05.2017
13:54:30
Ну типа, реально странная метода, не то тестируете
Я бы взял для теста какой-нибудь пробный json, на котором заранее известно что он валидный. И на нем бы проверял

Konstantine
26.05.2017
13:55:08
Снова таки - переведу сейчас все на тест постоянного json'а
Ошибка в travis'е испарится?
Нет
С ней все равно надо разбираться

Ivan
26.05.2017
13:55:41

Konstantine
26.05.2017
13:55:58
Шмишно [2]

Ivan
26.05.2017
13:56:10
(facepalm)

Google

Konstantine
26.05.2017
13:56:43
?

Ivan
26.05.2017
13:57:40
Еще раз научно-популярно: у тебя будет один и тот же код (что и локально) запускаться на одном и том же json (что и локально). Если локально тест будет проходить, то и на трависе будет проходить. А сейчас ты один и тот же код запускаешь на разных json. Ожидаемо, тест падает. Что не понятно?

Konstantine
26.05.2017
13:59:07

Aleksandr
26.05.2017
14:00:24

Konstantine
26.05.2017
14:00:28
Плюс ко всему - эти тесты используются и для определения - не поменялось ли что-то у инстаграма в выдаче, т.к. они ее регулярно меняют, только недавно выдача media по коду была изменена полностью, поменялись имена каждого поля. А если бы у меня тесты прогоняли статичный json - я бы этого и не узнал.

Aleksandr
26.05.2017
14:01:55
да никому не хочется этим заниматься, т.к. лучше в ошибках тестах показывать на каких данных они падают. это же поможет и при изменениях апи.

Konstantine
26.05.2017
14:02:42
Не хочется - так дело каждого. Я ведь попросил, а не приказал)
А засорять каждый тест огромной выдачей тоже не хочу, хотя если не останется другого выхода - то придется.

Ivan
26.05.2017
14:02:57

Konstantine
26.05.2017
14:03:34

Ivan
26.05.2017
14:04:01
Если код, то кладешь статичный json и тестишь на нем код. Если сторонний сервис, то берешь эталонный json, дергаешь API, сравниваешь json-ы построчно.

Konstantine
26.05.2017
14:05:01

Ivan
26.05.2017
14:05:54
Тебе уже дали несколько советов как это решить: 1) добавить больше логгирования и посмотреть, что за json приходит 2) определиться с тем, что тестируешь 3) тестировать изолированно

Konstantine
26.05.2017
14:07:17
Пока подожду, уже отозвалось пару человек пробежать тесты. А там, как уже и сам сказал выше, тесты надо делить, да)

Daniel
26.05.2017
15:52:15
коллеги, а вот скажите
у меня есть тест, и я знаю его максимальное время исполнения
и если тест задержался дольше - я хочу, чтобы он не прошел
куда мне вписать этот таймаут?

Ivan
26.05.2017
15:54:03
time.Ticker ... t.Fail

Ivan
26.05.2017
15:55:29
https://golang.org/cmd/go/#hdr-Description_of_testing_flags -timeout не подходит?

Илья
26.05.2017
15:55:45
или context.WithTimeout

Kirill
26.05.2017
15:56:00

Google

Kirill
26.05.2017
15:56:27
Правда это стандартный паттерн, наверняка он уже реализован в каком-нибудь контексте

Илья
26.05.2017
15:58:24
https://golang.org/pkg/context/#example_WithTimeout

Daniel
26.05.2017
15:58:36

Илья
26.05.2017
16:01:21
ну так, тогда так и стоит, в начале теста context background
и поехали

Daniel
26.05.2017
16:01:47
тест должен быть простым
и включать в себя как можно меньше компонентов

Илья
26.05.2017
16:02:58
ну, тогда time.Ticker

Daniel
26.05.2017
16:03:09
если есть возможность использовать существующий - он же существует - функционал - хорошо бы за него зацепиться

Илья
26.05.2017
16:04:49
или так, не суть, но я бы использовал context, особенно, если вы используете его внутри

Daniel
26.05.2017
16:05:14
не использую

Мерлин
26.05.2017
17:06:15

Ivan
26.05.2017
17:12:04
а чо хорошего про контексты почитать

Илья
26.05.2017
17:20:41
https://blog.golang.org/context
https://habrahabr.ru/post/269299/

Slach
26.05.2017
17:38:17
всем привет
изучаю чужие исходники
кто нибудь может объяснить где именно в исходниках ledisdb вызывается указанная вот тут функция которая регистрирует обработчики команд?
https://github.com/siddontang/ledisdb/blob/master/server/cmd_kv.go#L518

Илья
26.05.2017
17:40:39
init отработает на старте программы
https://play.golang.org/p/dvHymTy73F

Google

Slach
26.05.2017
17:43:00
ох ничесе
спасибо
не знал

Ivan
26.05.2017
17:53:46
А когда init много в разных файлах, каков порядок?

Илья
26.05.2017
18:08:14
не опеределен

Peter
26.05.2017
18:22:13
Ого, в 1.8 завезли sync.Map но он какой-то неудобный

Олег
26.05.2017
18:48:23
На пустых интерфейсах. Показательный пример от разработчиков, как писать нестандартные коллекции без генериков :-\

Slava
26.05.2017
20:32:37
Приведение к типу - быстрая операция

Олег
26.05.2017
20:41:16
Но не типобезопасная

Slava
26.05.2017
20:41:57
да, поэтому sync.Map, sync.Pool не для всех, а для разработчиков библиотек, которые всё это закроют через интерфейс api
вот то что в context хранится interface =) это большая проблема и косяк, как мне кажется

Мерлин
26.05.2017
20:54:30

Slava
26.05.2017
20:56:05
я бы делал через структуру, если бы можно было её сделать readonly
я понимаю что то как сделан контекст, это самый простой и доступный вариант в текущем положении
но этот вариант добавляет много проблем тоже, как и приносит решений

Bald
27.05.2017
10:42:56
Ждём вакансию

Oleg
27.05.2017
10:46:49
Стесняются

Мерлин
27.05.2017
14:31:49
concurrency-made-easy.pdf