Мы используем Дженкинс . Наши системные тесты построены на основе проприетарного фреймворка, написанного на C #.
Jenkins позволяет запускать задания при изменениях SCM (SVN, Git и Mercurial поддерживаются через плагины). Это также позволяет запускать задания на удаленных подчиненных устройствах (параллельно, если это необходимо). Вам необходимо вручную настроить работу и подчиненных . Конфигурирование заданий может быть выполнено с параметрами сборки: скажем, у вас есть только одно задание, которое принимает идентификаторы теста в качестве параметров, но оно может выполняться на нескольких ведомых устройствах; Вы можете настроить одно триггерное задание, которое будет запускать несколько тестовых заданий на разных ведомых устройствах, передавая им тестовые идентификаторы в качестве параметров.
Конфигурирование подчиненных становится намного проще, когда ваши подчиненные являются виртуальными машинами. Вы конфигурируете одну виртуальную машину, а затем копируете ее (убедитесь, что информация об узле, такая как имя узла, не жестко запрограммирована и легко настраивается).
Основные преимущества Jenkins:
- Это бесплатно
- Он имеет расширяемую архитектуру, позволяющую пользователям расширять его с помощью плагинов. На самом деле, на этом этапе (в отличие, скажем, полтора года назад) все, что мне нужно сделать, может быть сделано либо с помощью плагинов, либо с помощью Jenkins HTTP API.
- Это может быть быстро развернуто. Дженкинс работает в собственном контейнере сервлетов. Вы можете развернуть и начать играть с ним менее чем за час.
- Активное сообщество. Проверьте, например, теги [jenkins], [hudson] и [jenkins-plugins] в SO.
Я предлагаю вам попробовать: поиграйте с ним пару дней, скорее всего, вам понравится.
Обновление: Вот старый ответ Мне понравилось рекомендовать Дженкинса.