
D.
07.03.2017
14:28:08
вот в общем и все)

Nikita
07.03.2017
14:32:12
если крако - да, для мака есть maven. Может ошибаюсь но он идет в коробке с jdk
если стоит ждк проверь - mvn -v

D.
07.03.2017
14:33:29
ну я знаю, что у меня стоит мавен

Google

D.
07.03.2017
14:34:38
но я всегда был убежден, что мавен идет отдельно от jdk

Nikita
07.03.2017
14:37:39
я могу ошибаться. Очень очень давно все ставил. И когда потребовался мавен вместо градла - он уже был)

Dmitry
07.03.2017
17:42:32
на винде точно отдельно нужно maven ставить
вроде и на маке так же

Andrey
07.03.2017
19:13:14
Сколько у кого в проектах открытых и не закрытых багов? Так чисто статистики ради интересно. Скажем так, открытых более недели назад. Порядок хотя бы.

Nikita
07.03.2017
19:14:25
открытых неделю назад и незакрытых?)

Andrey
07.03.2017
19:17:19

Alexander
07.03.2017
19:18:09

Nikita
07.03.2017
19:19:18
потому что нафиг не надо) проблема пользователя не аффектит, чинить дорого
итерации 2недельные)
штук 15 наберется

D.
07.03.2017
19:24:16

Google

Alexander
07.03.2017
19:25:36
Почему?
если говорим применимо к вебдрайвер 2
то можем получить:
1. новые баги самого вебдрайвера
2. несовместимость с драйвером браузера (т.е. его тоже обновлять придётся)
3. и прочую свистопляску, с которой порой некогда возиться и разбираться
потому если работает стабильно - лучше лишний раз не обновлять.

Shoo
07.03.2017
19:29:15
Ну, вообще динамические депенденси - зло.

Alexander
07.03.2017
19:29:25

D.
07.03.2017
19:30:04

Alexander
07.03.2017
19:30:58

D.
07.03.2017
19:31:11
Согласен.

Slow
07.03.2017
19:31:49

Alexander
07.03.2017
19:32:22

Slow
07.03.2017
19:33:07
ну, вот, последний 12.2 ff51 поддерживает, я просто обновил и то и другое и всё
даже скрипты переделывать не пришлось

Andriano
07.03.2017
19:45:32
Коллеги, я за советом. Как вы контролируете тест покрытие? Есть ли тулзы какие

Shoo
07.03.2017
19:47:31
Нет эффектных тулз. Смотря что надо покрывать и какими тестами. :)

Faust
07.03.2017
19:48:55
Остальное, голая аналитика

Andriano
07.03.2017
19:49:30

Shoo
07.03.2017
19:50:04

Andriano
07.03.2017
19:50:23
Так, подробности опустим

Pavel
07.03.2017
19:50:51
Есть тулзы которые норм определяют покрытие юнит-тестов, там 0%, 23%, 100%и т.д. и все это показывают удобно в виде графиков для каждой поддиректории.

Google

Shoo
07.03.2017
19:51:56
Не, я не спорю, что они отлично это показывают.
Я говорю про то, что эта оценка под собой несет.

Pavel
07.03.2017
19:52:42
Счастье и процветание

Shoo
07.03.2017
19:52:49
Все эти тулзы строятся по примерно одному принципу: граф entity внутри приложения и соотношение используемых\неиспользуемых в тестах сущностей.
Это довольно далеко от понимания "покрыто тестами".
И часто к этому не имеет никакого отношения.
Это не говоря уж о том, что багов внутри этих тулз тоже хватает.
У нас, например, есть code rule, что пуллреквест не может быть замержен если покрытие тестами падает.

Pavel
07.03.2017
19:53:55
А чтобы имело отношение надо писать методы с нормальной цикломатической сложностью

Andriano
07.03.2017
19:54:12
Ну, по сути, тест покрытие это что то мифическое или можно более менее четко определить, что покрытие кейсами фичи приближено к 100%?

Shoo
07.03.2017
19:54:22
Дело не в цикломатической сложности, а в том, что это банальная проверка ссылок на entity.
А тесты - это прежде всего проверка логики.
Т.е. 100% покрытие тестами - не более, чем красивая ачивка, которая не говорит ничего о том, что код на самом деле нормально тестируется.

Pavel
07.03.2017
19:55:45
Все в этом мире не более чем красивая ачивка, в том числе и нормальное тестирование.

Shoo
07.03.2017
19:56:09
Йеп, но не всё в мире создает иллюзию защищенности и протестированности.

Andriano
07.03.2017
19:56:53

Alexander
07.03.2017
19:56:57
такая философия пошла, хоть в кабак иди и читай это там)

Nikita
07.03.2017
19:57:21

Shoo
07.03.2017
19:57:29

Pavel
07.03.2017
19:58:10
метод сделали из приватного публичным?

Shoo
07.03.2017
19:58:15

Google

Nikita
07.03.2017
19:58:22

Shoo
07.03.2017
19:58:27

Pavel
07.03.2017
19:58:47
Ну значит этот метод не был покрыт

Shoo
07.03.2017
19:58:56
Был.

Pavel
07.03.2017
19:59:08
Как он тогда вызвался если стал приватным?

Shoo
07.03.2017
19:59:39
В рамках контроллера, например?

Pavel
07.03.2017
20:00:12
Это не покрытие, например. Покрытие это когда тест напрямую дергает только лишь этот метод и проверяет его вывод.

Shoo
07.03.2017
20:00:37
И?

Admin
ERROR: S client not available

Pavel
07.03.2017
20:00:57
Так вот если сделать метод приватным то тест не сможет его вызвать и упадет.

Shoo
07.03.2017
20:01:16
Чем вызов метода в консоли с input -> output отличается от вызова метода в рамках контроллера с теми же условиями, если иной логики не затрагивается?
Code execution один и тот же.

Alexander
07.03.2017
20:02:01

Pavel
07.03.2017
20:02:08
приватный метод невозможно вызвать, вот что
Так что если кому-то там где-то удалось вызвать, значит либо это было внутри этого же класса (что некорректно), либо одна из черепашек не дописала тестов.

Shoo
07.03.2017
20:02:52
Он не может быть вызван извне сущности.

Pavel
07.03.2017
20:03:40
если приватный то да
А когда был публичный - то на него тест должен быть написан

Shoo
07.03.2017
20:04:22
Тест должен быть написан на любой метод, независимо от её изолированности, соряний.

Andriano
07.03.2017
20:04:38
Друзья, прошу вас, не уходите в холивар. Поставлю вопрос так, как правильнее организовывать это самое покрытие? Юниты, функциональное и тп. Как понять, что вот мы написали кейсы и фича готова к релизу (ну при условии успешного прогона кейсов конечно)

Google

Pavel
07.03.2017
20:04:55
Это нарушение контракта класса и запрещается.

Shoo
07.03.2017
20:06:30
Как связан класс контракт с тестами на приватные функции, простите?

Ivan
07.03.2017
20:06:58

Pavel
07.03.2017
20:07:00
Контракт - это набор всех сигнатур публичных функций. Тестировать надо только их вызовы.
А приватные - инкупсулированы внутрь и что там происходит никого не волнует.

Shoo
07.03.2017
20:07:38
Ну, если вас не волнует - круто вам. :)

Ivan
07.03.2017
20:07:53

Pavel
07.03.2017
20:10:45
Так чем закончилось дело об уменьшении покрытия кода? Вангую что из-за какой-то такой нарушеной логики все и случилось.
А почему это при мерже происходило - вообще для меня загадка. Если базовая ветка предварительно намержена на pull request

Nikita
07.03.2017
20:11:48

Pavel
07.03.2017
20:12:25

Andriano
07.03.2017
20:12:39

Pavel
07.03.2017
20:13:26
А вот юниты - там полегче.

Shoo
07.03.2017
20:13:37

Andriano
07.03.2017
20:14:26

Ivan
07.03.2017
20:14:57

Nikita
07.03.2017
20:15:03

Shoo
07.03.2017
20:15:31

Faust
07.03.2017
20:15:33