NAnt с тестами интеграции БД и, в конечном итоге, непрерывной интеграции
-
03-07-2019 - |
Вопрос
Я изучал различные стратегии запуска интеграционных тестов в некоторых скриптах сборки Nant. Как правило, в одной монолитной сборке объединены несколько различных сценариев, которые имеют разные цели: подготовка (сборка промежуточной версии, например сборка), сборка (сборка всего), интеграция (сборка и запуск интеграционных тестов). Это работает достаточно хорошо, цель сборки занимает около трети времени для запуска в качестве цели интеграции, и это не слишком долго, поэтому я не склонен часто запускать ее.
С другой стороны, цель интеграции занимает достаточно много времени, поэтому я не хочу делать это очень часто - в идеале, перед тем, как я буду готов к развертыванию. Это похоже на разумную стратегию? Я все правильно делаю?
В конечном итоге планируется перевести этот проект на непрерывную интеграцию. Я новичок во всем, что касается непрерывной интеграции, но я думаю, что понимаю концепцию «ломать сборку»; так что мне интересно, какие хорошие практики следует использовать, чтобы извлечь из них максимум пользы? Р>
Любые хорошие источники чтения на эту тему также приветствуются. Спасибо!
Решение
Да, вы на правильном пути. Что вам нужно сделать сейчас, это подключить вашу nant цель к автоматизированному процессу. Я рекомендую использовать Team City или Cruise Control для вашего CI инструмента. Когда у вас есть автоматическая настройка сервера, вы можете запускать свои сборки и модульные тесты при каждой регистрации (Непрерывная интеграция). Затем ваши интеграционные тесты могут выполняться ночью или в выходные дни, так как они обычно выполняются дольше. Если ваши интеграционные тесты пройдены успешно, вы можете получить задание, которое будет развернуто на каком-либо QA или другом сервере.
Другие советы
Похоже, ты на 99% пути. Мой совет - просто погрузиться и начать делать это. Вы узнаете намного больше, если действительно сделаете решительный шаг и сделаете это, чем подумаете, правильно ли вы это делаете.
Моя компания в настоящее время использует CruiseControl, и я лично считаю, что это здорово. Р>