(Стоит отметить, что под «непрерывной интеграцией» я имею в виду автоматизированную интеграцию с автоматизированным процессом сборки и автоматически запускает тесты и автоматически обнаруживает сбой каждого элемента.
Стоит также отметить, что «непрерывная интеграция» означает только транковый или тестовый сервер. Это не означает «проталкивать каждое изменение в прямом эфире».
Существует множество способов неправильной непрерывной интеграции.)
Не могу придумать ни одной причины, чтобы не проводить непрерывное интеграционное тестирование. Я предполагаю, что предполагаю, что «непрерывная интеграция» включает тестирование. То, что он компилируется, не означает, что он работает.
Если ваша сборка и / или тесты занимают много времени, то непрерывная интеграция может дорого обойтись. В этом случае, запустите тесты, очевидно связанные с вашим изменением, до принятия (инструменты анализа покрытия, такие как Devel :: CoverX :: Covered могут помочь определить, какие тесты идут с каким кодом), проведите интеграционное тестирование после коммит, использующий что-то вроде SVN :: Notify , и предупреждает разработчиков, если это не удается Архивируйте результаты теста, используя что-то вроде Smolder . Это позволяет разработчикам работать быстро, не тратя время на просмотр тестовых комплектов, но все же рано обнаруживая ошибки.
Тем не менее, немного поработав, вы часто сможете ускорить процесс сборки и тестирования. Во многих случаях медленные тесты являются результатом того, что каждый тест требует слишком большого количества настроек и демонтажа, указывая на систему, которая слишком сильно связана, что требует настройки всей системы только для тестирования небольшого кусочка.
Разделение часто помогает, разбивая подсистемы на независимые проекты. Меньшая область действия облегчает понимание и ускоряет сборку и тестирование. Каждый коммит может выполнять полную сборку и тестирование, не причиняя неудобства программисту. Затем все подпроекты могут быть собраны вместе для проведения интеграционного тестирования.
Одним из основных преимуществ запуска набора тестов при каждом коммите, даже если это после коммита, является то, что вы знаете, что сломало сборку. Вместо того, чтобы «что-то, что мы сделали вчера, сломали сборку», или, что еще хуже, «четыре вещи, которые мы сделали вчера, сломали сборку по-разному, и теперь мы должны распутать это», это «ревизия 1234 сломала сборку». Вам нужно только изучить эту одну ревизию, чтобы найти проблему.
Преимущество ежедневной сборки состоит в том, что, по крайней мере, вы знаете, что полная, чистая сборка и тестовый запуск происходят каждый день. Но ты все равно должен это делать.