2008-09-19 5 views
4

Каков наилучший способ запуска вашего набора модульных тестов после каждой фиксации?Лучший способ запуска модульных тестов после каждой фиксации? - svn - ветвь для каждой функции

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

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

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

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

ответ

9

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

Вы можете сделать это с помощью subversion hooks. Если вы добавите крюк pre-commit, вы можете выполнить сборку/тест до совершения фиксации. На сервере будет выполняться скрипт hook.

0

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

http://cruisecontrol.sourceforge.net/

+0

Я действительно использую круиз-контроль, но не знаю, как обнаружить изменения в каждой ветви, как только произойдет какое-либо совершение. – 2008-09-19 04:35:12

2

Вам нужен непрерывной интеграции сервера, как CruiseControl. Это будет отслеживать svn для изменений, огонь строит на фиксации, последует за ним с запуском тестового набора и помещает любые ошибки непосредственно в системный трей (или электронную почту или любое другое уведомление, которое вам удобно) Вам необходимо настроить CruiseControl написав небольшой скрипт (главным образом XML), который определяет ваши потребности в проекте. Рекомендуем .. вы не вернетесь, как только попробуете его. Here's one that I set up back in the day

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

+0

Как проверить все ветви с помощью круиз-контроля? – 2008-09-19 04:35:44

0

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

У этой утилиты называется svn_buildbot.py, которая может быть вызвана из вашего скрипта post-commit subversion.

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