NAnt с тестами интеграции БД и, в конечном итоге, непрерывной интеграцией - PullRequest
2 голосов
/ 20 октября 2008

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 20 октября 2008

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

2 голосов
/ 20 октября 2008

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

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

1 голос
/ 22 октября 2008

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

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

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

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

...