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

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

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

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

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

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


person Brian R. Bondy    schedule 19.09.2008    source источник


Ответы (4)


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

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

person Derek Park    schedule 19.09.2008

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

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

person Gishu    schedule 19.09.2008

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

http://cruisecontrol.sourceforge.net/

person Per Hornshøj-Schierbeck    schedule 19.09.2008
comment
Я действительно использую круиз-контроль, но не знаю, как обнаруживать изменения в каждой ветке, как только происходит какая-либо фиксация. - person Brian R. Bondy; 19.09.2008

Используйте Buildbot.

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

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

person Community    schedule 19.09.2008