Всем привет. Рассматривая процесс автоматизации и контроля качества программного обеспечения, как же не затронуть тему Continuous Integration (Delivery) (дословно “непрерывной интеграции”).
Что означает это понятие? Кратко говоря – это автоматизированный процесс подготовки нового кода к внедрению на любой стадии разработки и тестирования программного обеспечения, включающий цепочку действий: планирование и сборку билдов, запуск тестов (UI, Integration, Unit), отслеживание изменений и уведомление разработчиков о проблемах.
Тестируемое приложение
Внедрять процесс Сontinuous Integration мы будем для приложения, рассмотренного в предыдущем цикле статей. Для этого вам понадобится скачать проект с GitHub репозитория. Он содержит тесты, котрые мы будем запускать с помощью MSTest. Сам же проект мы будем компилировать с помощью MSBuild. И самое главное в качесттве сервера интеграции воспользуемся средствами CruiseControl.NET.
CruiseControl.NET
CCNet – это сервер Сontinuous Integration (CI) с открытм исходным кодом. Он позволяет создавать триггеры для автоматического запуска сборки нового билда при каждом коммите кода, запускать автотесты, логировать результаты и сохранять отчеты.
MSBuild
MSBuild представляет собой платформу для сборки приложений. Компонент беспечивает для файла проекта схему XML, которая управляет способами сборки и обработки приложений. MSBuild используется Visual Studio, но не зависит от нее. Вызывая msbuild.exe применительно к файлу вашего проекта вы можете выполнять сборку и настройку продуктов в средах, где Visual Studio не установлена.
MSTest
MSTest.exe будем использовать для запуска наших тестов с командной строки. Вы можете найти список MSTest.exe команд по ссылке. Мыбудем использовать /resultsfile: команду для логирования результатов в фай для построения отчета.
Установка CC.NET
Перейдем к установке CCNet:
1) Убедитесь, что IIS сервер установлен. Также в установку нужно включить компонент ASP.NET (ASP.NET по-молчанию не устанавливается вместе с IIS).
2) Перейдите по ссылке и скачайте CruiseControl.Net-1.8.5.0-Setup.exe (на время написания материала) или последнюю версию.
3) Установите сервер с настройками по-умолчанию. После этого папка “CruiseControl.NET” будет создана в Program Files (C:\Program Files (x86)\).
4) CCNet может работать автономно или как сервис Windows. Если CCNet необходимо использовать только в качестве сервера CI, его необходимо использовать кaк сервис Windows. Автономный режим будет полезен для дополнительных настроек и устранении неисправностей сервера. Мы будем использовать сервер как сервис.
5) Перейдите к services.msc и запустите сервис CruiseControl.NET Server.
После этого сайт ccnet должен быть создан в IIS. Если этого не произошло, выполните шаги следующего блока.
Добавление ccnet сайта в IIS
- Откройте Internet Information Services (IIS) Manager в Administrative Tools Windows
- В IIS перейдите в “Sites” и в контекстном меню выберите Add Web Site
- Предоставьте название сайта “ccnet”
- Внесите путь “C:\Program Files (x86)\CruiseControl.NET\webdashboard” для поля Physical path
- Назначьте незанятый порт, например, “523” для поля Port
- Все остальные поля оставьте без изменения и нажмите кнопку Ok.
Сайт “ccnet” должен быть создан в IIS.
Теперь можно открыть ccnet в браузере:
- Выберите “Switch to content view” в контекстном меню ccnet.
- В файлах в правой части выберите default.aspx, а в контекстном меню – Browse.
- Должна открыться ссылка “http://localhost:523/ViewFarmReport.aspx”
На данном этапе мы установили cruise control в качестве сервиса и видим его проект по-умолчанию. В следующей статье мы настроим конфигурацию на запуск тестов.