Как настроить локальный тестовый / сборочный компьютер?

Я собираюсь начать новый личный проект. Он нацелен на то, чтобы быть довольно большим, поэтому я подумал, что было бы неплохо сохранить какой-то CVS. Я также прочитал много интересного о модульном тестировании, и я хотел бы включить некоторую систему, которая автоматически собирает проект и запускает серию тестов после каждой регистрации. Характеристики:

  • Только один разработчик и одна машина (только я и мой компьютер!).
  • Включите CVS.
  • Включите автоматическое тестирование.
  • Программное обеспечение должно быть бесплатным (как бесплатно) и работать под Linux.
  • Это будет C++ и ANTLR.

До сих пор я настроил SVN и Eclipse+CDT+ANTLR для разработки, но я довольно потерян в настройке автоматической сборки + тестирования. Чтобы написать тесты, я думал в Boost.Test или UnitTest++.

Так что это источник моего вопроса. Как мне настроить мою локальную машину для тестирования / сборки? Ссылки на ценные учебники приветствуются.

Благодарю.

2 ответа

Решение

Похоже, что большинство серверов с непрерывной интеграцией с открытым исходным кодом построены на Java и не поддерживают C++ "из коробки". Однако есть несколько ссылок, с которых вы можете начать (обратите внимание, что для запуска большинства серверов с непрерывной интеграцией с открытым исходным кодом вам нужна среда Java):

Я лично предпочитаю Hudson из-за его простой установки (нет необходимости в сервере приложений, просто начните с java -jar hudson.war), а также простого в использовании и довольно "умного" интерфейса. Хадсон может извлекать ваш код из SVN (или CVS) и может запускать сценарий оболочки или файл Ant в качестве сценария сборки. Возможно, вам придется потратить несколько дней, чтобы настроить конфигурацию с помощью правильного сценария сборки, но я думаю, что это стоит времени.

Вид автоматического процесса, который вы смотрите, называется непрерывной интеграцией. Существует программное обеспечение, которое поможет вам в этом - хороший пример - JetBrains TeamCity. Вы также услышите о людях, использующих CruiseControl, Atlassian Bamboo и так далее.

Чтобы в полной мере воспользоваться этим, вы также можете взглянуть на автоматизированный инструмент сборки, такой как Ant или Mavenl; Ваша сборка с непрерывной интеграцией будет использовать его в качестве сборщика.

Хорошей отправной точкой была бы страница Мартина Фаулера на CI или страница Википедии.

Другие вопросы по тегам