2012-01-30 8 views
5

Я фиксирую каждый раз, когда делаю какие-то изменения, которые, я думаю, может Работа: Я не выполняю тщательного тестирования перед фиксацией. Кроме того, мои коммиты скоро будут автоматически pushed to a remote repository. (Я единственный разработчик, и мне приходится добавлять функции или переписывать части кода много раз в день.)mercurial: запускает дистанционные регрессионные тесты автоматически при каждом фиксации

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

Какой самый простой способ установить это?

Весь мой код находится в Python 3. Моя собственная система - это Windows 7, ActiveState Python, TortoiseHG и Wing IDE. Я могу настроить удаленный компьютер как Linux или Windows. Приложение представляет собой командную строку с текстовым вводом и выводом.

ответ

6

Используйте постоянный сервер интеграции, такой как Buildbot или Jenkins, и настройте его для мониторинга репозитория. Затем запустите тесты, используя это. Buildbot написан на Python, поэтому вы должны чувствовать себя как дома.

Если вы чувствуете, что это расточительно сделать Buildbot или Дженкинс опрашивать репозиторий (даже если hg pull использует очень мало ресурсов, когда нет новых ревизий), то вы можете настроить changegroup крюк в хранилище, чтобы вызвать сборку в CI сервер.

+1

Мы запускаем TeamCity, еще один отличный сервер непрерывной интеграции. – StrangeWill

+1

@StrangeWill: Я слышал хорошие вещи о TeamCity, например, что он может планировать сборку на агенте, у которого уже есть клон, который больше всего похож на клон вверх, так что «hg pull» быстро для клиента. Я просто сосредоточился на инструментах с открытым исходным кодом в своем ответе, так как у меня больше всего опыта с самим собой. –

2

Я бы порекомендовал настроить Buildbot. Вы можете наблюдать за удаленным репозиторием (поддерживается Mercurial) и автоматически запускать сборку при изменении репозитория. В вашем случае сборка будет запускать ваш тестовый пакет.

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

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