Лучший способ запустить модульные тесты после каждого коммита? - svn - ветка на объект - PullRequest
4 голосов
/ 19 сентября 2008

Каков наилучший способ запуска набора тестов после каждого коммита?

Меня особенно интересует случай, когда вы делаете все свои функции / изменения в ветвях и сохраняете свою магистраль стабильной.

Мой источник управления SVN, и я использую черепаху SVN в качестве моего клиента.

Есть ли событие SVN или что-то в этом роде, которое я могу назвать файлом .cmd / .bat?

Если ответ круиз-контроль, как вы проверяете все филиалы с круиз-контролем?

Ответы [ 4 ]

9 голосов
/ 19 сентября 2008

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

Вы можете сделать это с помощью subversion hooks . Если вы добавите хук pre-commit, вы можете выполнить сборку / тестирование до того, как произойдет фиксация. Сценарий подключения будет выполняться на сервере.

2 голосов
/ 19 сентября 2008

Вам необходим сервер непрерывной интеграции, такой как CruiseControl. Это будет отслеживать svn на наличие изменений, запускать компиляцию на основе фиксации, сопровождать ее запуском комплекта тестов и отмечать любые ошибки прямо в системном трее (или по электронной почте, или с любым другим уведомлением, которое вам удобно) Вам необходимо настроить CruiseControl, написав небольшой скрипт (в основном XML), который определяет потребности вашего проекта. Рекомендуется ... вы не вернетесь, как только попробуете. Вот тот, который я настроил назад в тот день

Обновление : Я не думаю, что есть глобальная проверка всех настроек типа ветвей. Каждая ветвь должна иметь свой собственный транковый URL, что означает другой проект для CruiseControl. Если вы следуете рекомендованному способу ветвления Subversion ( см. Здесь ), так как сам CruiseControl, похоже, использует ветки в Subversion ... похоже, это путь.

0 голосов
/ 19 сентября 2008

Использование Buildbot .

У него есть утилита svn_buildbot.py, которую можно вызвать из вашего скрипта пост-фиксации Subversion.

Buildbot - это подрывная деятельность (как и ряд других VC-систем), поэтому он может быть настроен для получения новых ревизий из веток, в которые вы ввели. Он также предоставляет уведомления по электронной почте и веб-интерфейс для проверки состояния и форсирования сборок в определенной редакции / ветви.

0 голосов
/ 19 сентября 2008

Я бы также настроил автоматизированный процесс сборки / развертывания. Проверьте Круиз-контроль - он может запустить модульные тесты перед развертыванием.

http://cruisecontrol.sourceforge.net/

...