Раздел 43 · Автотестирование с нуля

CI с нуля: конвейер, GitHub Actions и быстрая обратная связь

middle~45 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Табло в фойе показывает месяц до «Ночи продаж». Ошибка со сбором, которую в пятницу заметили зрители, в ту ночь попала бы в чек каждого зрителя с промокодом среди 40 000 билетов за 15 минут. Тесты, которые её ловят, существовали всё время. Им просто никто не сказал, что Тимур что-то поменял.

Оля здесь хозяйка порога. Стенд в CI, шарды, ворота, весь блок K она откроет только после первого шага: тесты запускает не человек, а событие. Блок J закончился сотней зелёных прогонов подряд, но эта сотня живёт на твоём ноутбуке. Сегодня тесты переезжают туда, где их запускает push, pull request или расписание.

Сигнализация, которую включают руками

Представь пожарную сигнализацию, которая срабатывает, только если кто-то учуял дым и нажал на ней кнопку «проверить». Датчик отличный, чувствительный, ни одного ложного срабатывания. Но пожар в пустом офисе ночью он не заметит, потому что нажать некому.

Набор тестов без автоматического запуска устроен так же. Тесты на цены были хорошие, мутантов из блока D они убивали. Но Тимур менял ядро в другом репозитории, забыл про тесты, и ни один из них не узнал о его коммите. Непрерывная интеграция это сигнализация, которая проверяет дым сама, на каждое событие, без кнопки.

урок из курса

Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.