понедельник, 3 февраля 2014 г. - www.msmirnov.ru

TeamCity и другие

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

Прежде всего, мы вернули управление задачами в JIRA, отказавшись от тяжеловесного Rational Team Concert и TFS (хотя про TFS плохо говорить не хочу).

Дальше, мы начали использовать TeamCity в качестве средства выполнения автоматических билдов и юнит-тестов. Помню, как несколько лет назад я хотел настроить автоматические билды в TFS, но это показалось мне несколько сложно и в тот момент я забросил эту идею. Может быть сейчас в TFS что-то изменилось, мне это не известно, но для меня на фоне TFS настройка TeamCity очень простой и понятной.

Мы сделали так, что после каждого чекина в TFS, TeamCity с небольшой задержкой берет последнюю версию проекта, производит его билд и затем выполняет прогон всех юнит-тестов. В случае возникновения ошибок разработчики автоматически получают уведомления.

Кроме того, одновременно с юнит-тестами проводится статистический анализ кода при помощи утилиты FxCop 10, запуск которой мы также настроили в TeamCity. Отчет о найденных недочетах в коде можно увидеть непосредственно в TeamCity.

После удачной сборки и тестирования проекта производится его автоматическое развертывание в тестовое окружение - на тестовый сервер. Выполняется это также средствами TeamCity.

Для развертывания тестовой базы данных мы в TeamCity настроили запуск EMS DB Comparer, который сравнивает схемы девелоперской и тестовой баз, создает change script и выполняет его на тестовой базе. При этом он ведет историю сгенерированных скриптов, которую мы в будущем может анализировать или как-то использовать. К сожалению, в данном проекте мы не смогли использовать утилиту VSDBCMD для развертывания database-проектов, создаваемых в Visual Studio, так как данный проект использует базы данных MySQL.

В качестве средства обмена документами мы начали использовать Google Docs вместо опять же достаточно тяжелого SharePoint. Совместно используемую проектную область через Google Drive можно замапить себе на локальный диск, что очень удобно.

Для разработки тест-кейсов и формирования отчетов о тестировании мы начали использовать TestRail QA. Он нам представляется более удобным, чем TestLink, который мы использовали раньше.

Последнее, на чем хочу остановиться - это Source Control - он остался в TFS и это единственная функция, которая за ним остается на данный момент.


Таким образом, обобщая все, что я сказал выше, получаем следующий список инструментов:
  • Source Control - TFS
  • Управление проектом - JIRA (вместо TFS)
  • Сборка проекта и выполнение юнит-тестов - TeamCity (вместо TFS)
  • Статистический анализ кода - FxCop
  • Синхронизация баз данных - EMS DB Comparer
  • Обмен документами - Google Docs (вместо SharePoint)
  • Тест-кейсы - TestRail QA
В завершение хочу сказать спасибо Леше Раге за бесценные консультации в подборке инструментов.
Мой сайт - www.msmirnov.ru