2013-09-20 8 views
3

Позвольте мне начать с того, что я новичок с холодным носом. Я пытаюсь исследовать, можно ли сделать следующее и что будет лучшим подходом к его достижению.Холодная непрерывная интеграция

Всякий раз, когда разработчик проверяет код в SVN, я хотел бы получить все новые изменения/файлы и выполнить автоматическую сборку, чтобы проверить, может ли код успешно развертываться на рабочем сервере. Я предполагаю, что есть две части: одна проверка синтаксиса и второй интеграционный тест (если функциональность работает как ожидалось). Для более поздней части необходимо будет использовать некоторые инструменты тестирования.

Может кто-то прокомментировать их опыт, делающий что-то подобное для coldfusion. Извините за то, что вы немного расплывчаты ... Я знаю, что это очень открытый вопрос, но любая обратная связь будет оценена по достоинству.

Благодаря

+0

Если ваш модуль тестирует все в коде, который должен охватывать любые проблемы с синтаксисом –

+0

Является ли комплексное тестирование единственным способом решения этой проблемы? – jsp

ответ

8

Там в проект под названием «Облачно, возможны Tests», который имеет целью делать то, что вам требуется. В частности, он объединяет ряд других проектов анализа кода CFML (VarScope & QueryParam) для проверки кода, а также модульного тестирования. Я в настоящее время не использую его сам, но посмотрел на него некоторое время назад (более 12 месяцев), и это выглядело неплохо.

https://github.com/mhenke/Cloudy-With-A-Chance-Of-Tests

Лично я бег MXUnit тестов в Дженкинс, следуя инструкции с сайта MXUnit - можно посмотреть здесь:

http://wiki.mxunit.org/display/default/Continuous+Integration+--+Running+tests+with+Jenkins

По существу это устанавливается как муравей задача в Дженкинс, который выполняет MXUnit проверяет и сообщает результаты.

1

Мы не делаем полностью непрерывные интеграции, но у нас есть процесс, который автоматизирует некоторые нудные из наших сборок:

  • заменить application.cf сайта (т | в) с тем, которая сообщает пользователь что приложение развертывается (у нас был персонал QA, который выявил дефекты, вызванные повторными развертываниями).
  • прочитать XML-манифест базы данных, в котором перечислены все сценарии SQL, которые составляют текущую версию. Мы объединяем сценарии в один сценарий обновления, подходящий для доставки
  • выполнить SQL-скрипт с БД сервера, отметив какие-либо ошибки. Процесс конкатенации также добавляет строку SQL после каждого импортированного скрипта, который является белым для таблицы runlog, поэтому мы можем видеть, что было, сколько времени прошло и с какой сборкой связано. Если вы хотите, чтобы повторить этот шаг, посмотрите на Liquibase
  • развернуть последнюю версию кода
  • сделать HTTP вызов к? Сбросу = истинный типа URL, чтобы сказать приложение для повторной инициализации
  • выполнить любого тесты

Сборка запрашивается вручную через серверы сборки, которые у нас есть, но вы нажимаете кнопку, делаете чай, и все готово. Мы только что расширили вышеуказанное, чтобы справиться с несколькими серверами в кластере, и он хорошо гаснет. Я думаю, что вышеупомянутое предложение использовать плагин Jenkins SVN для автоматизации процесса звучит как способ пойти.

Смежные вопросы