Continuous Integration с нуля (Jenkins+Git+Selenium)
Немного теории: Continuous Integration (CI) - одна из фундаментальных инженерных практик в Agile разработке. Выполняет роль системы раннего обнаружения ошибок путём автоматического выполнения задач компиляции, запуска юнит тестов, сборки проекта, запуска интеграционных тестов и многого другого…
Организация работы: Получаем свежий код из репозитория Производим сборку проекта (например «накатываем» миграции) Выполняем тесты (unit+functional) Выполняем дополнительные действия (например анализ кода) Собираем и отображаем отчёты Рассылаем уведомления, заливаем билд на live сервер, etc…
Плюсы: Много различных инструментов Тестируется всегда «свежий» билд Актуальные сведения о состоянии системы Подробные отчёты (что упало, кто виноват) Регрессионное тестирование (одно «подкрутили» - другое «отвалилось») Всё это происходит автоматически(!)
Минусы: Необходим отдельный сервер Затраты на поддержание инфраструктуры Необходимо обучение людей Затраты времени на написание\поддержку тестов (и разработчиком, и тестировщиком) Больше ничего не придумал…
Инструменты:
Создание проекта (шаг 1)
Создание проекта (шаг 2)
Создание проекта (шаг 3)
Создание проекта (шаг 4)
Создание проекта (шаг 5)
Запускаем билд:
Анализируем результат (вывод из консоли):
Анализируем результат (общая информация):
Анализируем результат (Test Results):
Анализируем результат (Duplicate Code):
А как же Selenium?
Материалы: Phing PHPUnit ndixes.configuration.html ndixes.configuration.html Jenkins JENKINS/Homehttp://wiki.jenkins-ci.org/display/ JENKINS/Home