NAnt с тестами интеграции БД и, в конечном итоге, непрерывной интеграции

StackOverflow https://stackoverflow.com/questions/219156

  •  03-07-2019
  •  | 
  •  

Вопрос

Я изучал различные стратегии запуска интеграционных тестов в некоторых скриптах сборки Nant. Как правило, в одной монолитной сборке объединены несколько различных сценариев, которые имеют разные цели: подготовка (сборка промежуточной версии, например сборка), сборка (сборка всего), интеграция (сборка и запуск интеграционных тестов). Это работает достаточно хорошо, цель сборки занимает около трети времени для запуска в качестве цели интеграции, и это не слишком долго, поэтому я не склонен часто запускать ее.

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

В конечном итоге планируется перевести этот проект на непрерывную интеграцию. Я новичок во всем, что касается непрерывной интеграции, но я думаю, что понимаю концепцию «ломать сборку»; так что мне интересно, какие хорошие практики следует использовать, чтобы извлечь из них максимум пользы?

Любые хорошие источники чтения на эту тему также приветствуются. Спасибо!

Это было полезно?

Решение

Да, вы на правильном пути. Что вам нужно сделать сейчас, это подключить вашу nant цель к автоматизированному процессу. Я рекомендую использовать Team City или Cruise Control для вашего CI инструмента. Когда у вас есть автоматическая настройка сервера, вы можете запускать свои сборки и модульные тесты при каждой регистрации (Непрерывная интеграция). Затем ваши интеграционные тесты могут выполняться ночью или в выходные дни, так как они обычно выполняются дольше. Если ваши интеграционные тесты пройдены успешно, вы можете получить задание, которое будет развернуто на каком-либо QA или другом сервере.

Другие советы

Похоже, ты на 99% пути. Мой совет - просто погрузиться и начать делать это. Вы узнаете намного больше, если действительно сделаете решительный шаг и сделаете это, чем подумаете, правильно ли вы это делаете.

Моя компания в настоящее время использует CruiseControl, и я лично считаю, что это здорово.

Просмотрите эту связанную ветку Что такое хороший процесс сборки CI?

Вы на правильном пути. Если вы используете достойный инструмент CI, вы должны иметь возможность настроить каждую настройку как отдельный проект, который запускает следующий шаг в цепочке ... т.е. успешные сборки запускают тесты, которые запускают развертывание, которое запускает интеграцию и т. Д.

Таким образом, ваш самый простой " перерыв " останавливает линию так сказать.

Мы используем CruiseControl для создания, модульного тестирования, настройки и развертывания, запуска интеграционных тестов и покрытия кода, выполнения приемочных тестов и выпуска пакета. Это с системой из 8 или около того веб-сервисов и с дюжиной или около того баз данных, все с взаимосвязанными конфигурациями и зависимостями развертывания в разных средах с разными конфигурациями (от простых до избыточных блоков для каждого компонента)

scroll top