Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Continous Integration

1 132 vues

Publié le

Continous Integration с применением CruiseControl.NET, NAnt и NUnit

  • Identifiez-vous pour voir les commentaires

Continous Integration

  1. 1. Continious Integration TulaDev.NET Развертывание Continious Integration при помощи CruiseControl.Net, NAnt, NUnit и Svn Виталий Луканин ООО “Смартек” Senior C# Developer [email_address] http://www.smartru.com
  2. 2. А для чего оно мне? Тест Джоэла Спольски: 12 шагов к лучшему коду <ul><li>Вы используете систему контроля версий?
  3. 3. Можете ли вы собрать проект в один шаг?
  4. 4. Проводите ли вы ежедневные билды?
  5. 5. У вас есть база данных ошибок?
  6. 6. Исправляете ли вы ошибки до написания нового кода?
  7. 7. У вас есть актуальный график работ?
  8. 8. У вас есть спецификация?
  9. 9. У программистов тихие рабочие места?
  10. 10. Используете ли вы лучшие средства, какие только можно купить?
  11. 11. У вас есть тестеры?
  12. 12. Пишут ли кандидаты код во время собеседования?
  13. 13. Проводите ли вы коридорное тестирование удобства использования программ? </li></ul>
  14. 14. Continious Integration это... <ul>Непрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. На практике это приводит к тому, что есть некий механизм, который следит за вашим Source Control, и при появлении там изменений автоматически скачивает их, билдит, прогоняет тесты (конечно, если их пишут) и, возможно, выполняет какие-то другие действия. В случае же неудачи на одном их этапов, он дает об этом знать всем заинтересованным лицам, в первую очередь – последнему коммитеру. </ul>
  15. 15. И что же для этого нужно? <ul>Мы рассмотрим лишь один из возможных вариантов организации процесса разработки в команде, позволяющий значительно сократить время и трудоемкость работы. И для этого нам понадобятся: <li>Windows 7 (с установленным IIS)
  16. 16. Visual Studio 2008 или 2010
  17. 17. SVN
  18. 18. NUnit
  19. 19. Nant
  20. 20. Cruise Control.NET </li></ul>
  21. 21. <ul>Windows 7 (с установленным IIS) </ul><ul>Windows 7 в качестве операционной системы была выбрана по целому ряду причин: </ul><ul><li>Эта операционная система установлена у автора доклада. </li></ul>
  22. 22. <ul>Visual Studio 2008 или 2010 </ul>Визуальная среда разработки нужна не только для разработки кода на машине разработчика, но и для автоматизированной сборки Deployment проектов на билд-сервере.
  23. 23. <ul>SVN </ul>Subversion (также известная как «SVN») — свободно распространяемая централизованная система управления версиями. Существует несколько наиболее популярных видов систем управления сорцами, к которым относятся CVS, SVN, VSS и др. В данном случае будет использоваться Visual SVN Server, т. к. его достаточно просто настроить, а также он тесно интергирован с Cruise Control. NET p.s. английское cлово subversion можно перевести двояко — как «свержение» (subversion) и как «подверсия» (sub-version)
  24. 24. <ul>NUnit </ul>NUnit — это открытая среда юнит-тестирования приложений для .NET, которая легко интегрируется как с Visual Studio, так и с CruiseControl.
  25. 25. NAnt NAnt — это свободно распространяемое (open source) ПО для автоматизации процесса сборки ПО. NAnt очень похож Apache Ant, но ориентирован на работу с .NET, а не Java, вследствие чего требует требует наличия одной из версий .NET Framework.
  26. 26. Предлагаемая стратегия сборки Для автоматизации процесса сборки, предположим, что она должна осуществляться по следующему алгоритму: 1. Подменить *.config файл в веб приложении 2. Собрать проект 3. Запустить тесты 4. Создать *.bat файл для деплоймента веб приложения в IIS, а также установки сервиса. 5. Если environment=='QA', будем архивировать бинарники сервиса и копировать их в папку «C:build» (на месте бинарников сервиса могут быть инсталляторы реального приложения)
  27. 27. Cruise Control.NET Cruise Control.NET – это фреймворк, предназначенный для обеспечения непрерывной интеграции. Нас интересуют два инсталлятора: <ul><li>Cruise Control.NET - серверная часть, это сам сервис, обеспечивающий периодическое выполнение тасков, и веб-интерфейс, позволяющий просмотреть результаты любого из запусков
  28. 28. CruiseControl.NET-CCTray – клиентская тулза, которая с любой из машин клиента позволяет просмотреть текущее состояние серверной стороны или обратиться к описанному выше веб-интерфейсу </li></ul>
  29. 29. Больше информации <ul><li>Подробнее про 12 шагов Джоэла:
  30. 30. http://local.joelonsoftware.com/wiki/%D0%A2%D0%B5%D1%81%D1%82_%D0%94%D0%B6%D0%BE%D1%8D%D0%BB%D0%B0:_12_%D1%88%D0%B0%D0%B3%D0%BE%D0%B2_%D0%BA_%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BC%D1%83_%D0%BA%D0%BE%D0%B4%D1%83
  31. 31. Пошаговое руководство по настройке CI:
  32. 32. http://ilmatte.wordpress.com/2008/06/01/cruisecontrolnet-tutorial-part-1/
  33. 33. Сайт разработчиков утилиты NAnt:
  34. 34. http://nant.sourceforge.net/
  35. 35. Сайт проекта NUnit:
  36. 36. http://www.nunit.org/
  37. 37. Подробнее про работу с IIS из командной строки:
  38. 38. http://mvolo.com/blogs/serverside/archive/2007/07/12/Creating-IIS7-sites_2C00_-applications_2C00_-and-virtual-directories.aspx </li></ul>

×