Как стать автором
Обновить

Комментарии 7

Самое интересное и не рассказали — как бейджик сделать? ))
Спасибо. Думал, что это бейджик от Travis, но там такого не нашел.
добавил в статью еще альтернативный вариант
Сегодня та или иная библиотека на Github, у которой нет тестов, уже не воспринимается серьезно.

Кем не воспринимается? Значит ли это, что тесты должны быть в любой библиотеке, просто «шоб було»?

Тесты помогают нам смело делать рефакторинг и быть уверенными, что модуль, класс или функция работают так, как это задумывалось. Они позволяют нам тестировать наш код на разных версиях PHP и выявлять ошибки заранее. Это гарант качества и стабильности вашего кода.

Это если сами тесты написаны правильно. А кто будет гарантировать качество самих тестов? Тесты тоже пишутся людьми и само по себе их наличие, не дает никакой гарантии качества и стабильности кода. Тем более, что «Стремиться к стопроцентному покрытию кода нет никакого смысла», это означает, что кто-то решает что покрыть тестами, а что — нет. Всегда ли это решение разумно и обосновано?
Наличие тестов, проходящих мало-мальское код-ревью (просто чтобы убедиться, что они реально что-то тестируют) или просто автоматически полученная метрика покрытия, близкая к 100%, уменьшает вероятность ошибки. Грубо, если я делаю одну ошибку на 10 строк кода случайным образом, то проходящие тесты дают основание считать, что в основном коде остались ошибки в одной строке из 100. Это не гарантия, конечно, но статистико-вероятностная оценка количества ошибок.
Кем не воспринимается? Значит ли это, что тесты должны быть в любой библиотеке, просто «шоб було»?


Не воспринимается разработчиками. Если я вижу выбор среди нескольких бандлов/модулей, не последнее место будет занимать критерий выбора по наличию test suite.

Да что тут говорить, когда делаешь PR тебя в большинстве случаях попросят добавить и тесты, хотябы как самый свежий пример — изменение в этом плане политики в репозитории Yii фреймворка.

А кто будет гарантировать качество самих тестов? Всегда ли это решение разумно и обосновано?


Мне кажется, вы придираетесь к словами. Когда вы пишите тесты, вы часто находите ошибки в своем коде (если пишите их после написания кода). Либо тесты помогают вам изначально выстроить более лучшую архитектуру ваших классов, если вы пишите тесты до написания кода. Естественно могут быть ошибки и в тестах, это очевидно.

Еще раз подчеркну, тесты гарантируют вам что после рефакторинга ваш код работает так, как вы это задумывали до него. Меньше траты времени на поддержку -> меньше багов -> более стабильный код
Зарегистрируйтесь на Хабре, чтобы оставить комментарий