Слайд 2Немного теории:
Continuous Integration (CI) - одна из фундаментальных инженерных практик в Agile
разработке. Выполняет роль системы раннего обнаружения ошибок путём автоматического выполнения задач компиляции, запуска юнит тестов, сборки проекта, запуска интеграционных тестов и многого другого…
Слайд 3Организация работы:
Получаем свежий код из репозитория
Производим сборку проекта (например «накатываем» миграции)
Выполняем тесты
(unit+functional)
Выполняем дополнительные действия (например анализ кода)
Собираем и отображаем отчёты
Рассылаем уведомления, заливаем билд на live сервер, etc…
Слайд 5Плюсы:
Много различных инструментов
Тестируется всегда «свежий» билд
Актуальные сведения о состоянии системы
Подробные отчёты (что
упало, кто виноват)
Регрессионное тестирование (одно «подкрутили» - другое «отвалилось»)
Всё это происходит автоматически(!)
Слайд 6Минусы:
Необходим отдельный сервер
Затраты на поддержание инфраструктуры
Необходимо обучение людей
Затраты времени на написание\поддержку тестов
(и разработчиком, и тестировщиком)
Слайд 14Анализируем результат
(вывод из консоли):
Слайд 15Анализируем результат
(общая информация):
Слайд 16Анализируем результат
(Test Results):
Слайд 17Анализируем результат
(Test Results):
Слайд 18Анализируем результат
(Duplicate Code):