Непрерывная интеграция: неуправляемый C ++ в Visual Studio 2008 - PullRequest
2 голосов
/ 11 апреля 2009

Я потратил 4 года на разработку C ++ с использованием Visual Studio 2008 для коммерческой компании; настало время обновить мой процесс разработки.

Вот проблема: у меня нет автоматизированной сборки в 1 кнопку. У меня также нет CI-сервера, который автоматически компилируется, когда происходит фиксация, и отправляет мне электронное письмо, если сборка нарушена или нет. Хуже того, у нас нет ни одного модульного теста !!

Может кто-нибудь указать мне, как я могу начать?

Я посмотрел на множество инструментов, и думаю, я мог бы пойти с:

Visual Build (для автоматизации сборки) (Примечание: я также рассмотрел Final Builder)

Круиз (для CI-сервера)

Я также сейчас только начинаю практиковать TDD ... поэтому я тоже хочу автоматизировать свои юнит-тесты. Я выбрал Google Test / Mock для их обширной документации. (Могу ли я пойти не так с брендом Google, могу ли я? = P)

Цена не проблема, я хочу, чтобы лучше и легче было начать.

Могут ли люди, которые используют настоящий инструмент CI / автоматизации для неуправляемого MSVC ++ , рассказать мне о своих инструментах и ​​как я могу начать?

Нашим источником контроля является Subversion.

Последний пункт: я также рассматриваю инструмент управления проектами / отслеживания, который интегрируется прямо в VSTD ... и думаю об использовании OnTime. VSTS стоит слишком дорого. Я пробовал FogBugz, но я думаю, что это слишком просто. Есть другие?

Ответы [ 5 ]

2 голосов
/ 12 апреля 2009

Я бы потратил некоторое время на то, чтобы серьезно рассмотреть вопрос TeamCity . Некоторое время мы использовали CruiseControl.NET, и TeamCity полностью его уничтожает. Кроме того, он имеет встроенные плагины для Boost и CppUnit, поэтому ваше тестирование будет бесплатным.

Лучше всего, этот инструмент бесплатный для <20 пользователей и дает вам три агента сборки. </p>

Я только что закончил реализацию нашего продукта C ++ на работе, и это было довольно просто. Мы сделали это с помощью msbuild и в основном использовали задачу msbuild для компиляции решения. Другие цели могут использоваться для копирования файлов, запуска модульных тестов и т. Д.

2 голосов
/ 11 апреля 2009

В прошлый раз, когда я работал над неуправляемым проектом MSVC ++ (который я бы добавил небольшого размера), мы использовали FinalBuilder для автоматической сборки и управления версиями (и даже запуска PCLint и других инструментов профилирования).

Сказав, что, если вы готовы потратить время, MSBuild (или, может быть, nAnt?) Может сделать все, что вам нужно - даже для неуправляемых решений.

Что приводит нас к компромиссу: такие инструменты, как Visual Build Pro и Final Builder, помогут вам быстро приступить к работе. Если вы хотите что-то, что предлагает больший диапазон настройки, вы, вероятно, потратите приличное количество времени на изучение и понимание этого - то есть MSBuild, CIFactory, nAnt и т. Д. Не являются легкой прогулкой.

Так что, если цена не проблема - это время? Если бы время было слишком дорого, я бы исследовал инструменты с графическим интерфейсом, они быстро доставят вас туда, куда вы хотите. Если вы знаете, что вам нужно расширить простой сценарий сборки + модульных тестов + развертывания (что часто случается!), То решите, сможете ли вы потратить время на более сложные инструменты, такие как MSBuild?

2 голосов
/ 11 апреля 2009

Мы используем комбинацию Boost.Build , NAnt , CPPUnit и Cruise Control .NET или Hudson (мы использовали их оба для различных проектов, но начинаем отдавать предпочтение Хадсону).

Они все хорошие инструменты, хотя мы рассматриваем замену CPPUnit - система юнит-тестирования Google довольно хороша из того, что я видел.

Если вы довольны работой только на Windows, вы можете потерять Boost.Build и просто вызвать Visual Studio из NAnt.

Что касается отслеживания проблем / управления проектами, мы остановились на Vision Project после долгого расследования. Это не очень хорошо известно (пока), но мы нашли, что это очень хорошо вписывается в нашу среду. Fogbugz отличный, хороший, понятный интерфейс, но мы пришли к выводу, что вы тоже сделали; слишком просто для наших нужд.

Несмотря на то, что мир .NET испорчен подобными инструментами, Непрерывную интеграцию все еще довольно легко настроить для C ++! Я бы не подумал начать нетривиальный проект без установки этих систем.

1 голос
/ 26 апреля 2009

мы используем subversion + cruisecontrol + wix для выполнения автоматических сборок CI, выводящих установщики одним щелчком мыши. эта комбинация очень хорошо сработала для нас. Мы создали собственный сайт для администраторов групп пользователей SVN и разрешений и добавили к нему веб-интерфейс. у нас есть сервер sql, хранящий всю собранную статистику из svn и cc, и используем ее для пользовательских отчетов, доступных на нашем сайте. мы собираемся добавить другие инструменты для проверки различных атрибутов кода, хранящегося в SVN. эта комбинация очень хорошо сработала для нас.

0 голосов
/ 11 апреля 2009

В моей компании мы используем CruiseControl (http://cruisecontrol.sourceforge.net/).). Java-версия, а не .NET, для создания нашего приложения wxWidgets на Windows и OS X. До сих пор отлично работало.

...