mercurial: автоматический запуск удаленных регрессионных тестов при каждой фиксации

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

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

Как проще всего это настроить?

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


person max    schedule 30.01.2012    source источник


Ответы (2)


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

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

person Martin Geisler    schedule 30.01.2012
comment
Мы запускаем TeamCity, еще один отличный сервер непрерывной интеграции. - person StrangeWill; 30.01.2012
comment
@StrangeWill: Я слышал хорошие отзывы о TeamCity, например, он может планировать сборки на агенте, у которого уже есть клон, который больше всего похож на клон восходящего потока, так что hg pull работает быстро для клиента. В своем ответе я просто сосредоточился на инструментах с открытым исходным кодом, поскольку это то, что у меня больше всего опыта. - person Martin Geisler; 31.01.2012

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

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

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

person jterrace    schedule 30.01.2012