Лучшая практика с развертыванием Coldfusion
Я новичок в разработке Coldfusion и унаследовал уже развернутый проект. Из-за различных технических ограничений невозможно разрабатывать локально на наших рабочих станциях (как вы делаете для.net). Как следствие, файлы редактируются непосредственно с тестовых серверов (и передаются в SVN оттуда).
Еще раз, поскольку тестовая база данных обычно намного отстает от prod db, нам часто приходится редактировать код непосредственно с сервера prod (пожалуйста, не вините здесь, я знаю, что это плохо).
Я хотел бы воспользоваться этой возможностью, чтобы вернуть процесс в нечто управляемое:
- Местная редакция кода
- Модульное тестирование с использованием MXUnit
- Совершить с SVN
- Подключите SVN, который будет развернут на тестовом сервере.
- Тест на тестовом сервере
- Как-то инициировать развертывание на прод-серверах
С точки зрения технологии, я думал о комбинации: CFEclipse, MXUnit, SVN и ANT
Кроме SVN, все будет новым и может быть изменено, если у вас есть лучший совет.
Кто-нибудь реализовывал такие процессы и мог бы мне подсказать, с чего начать?
2 ответа
В нашем офисе мы сначала попробовали ANT + MXUnit + Selenium + TeamCity, но через некоторое время решили перейти на сервер непрерывной интеграции Jenkins / Hudson.
Существует множество инструкций и руководств по непрерывной интеграции, поэтому я думаю, что вам не нужен я, чтобы объяснить это в деталях.
В общем, создайте свои ANT-скрипты для svncheckin/checkout, создайте тесты MXUnit, сгенерируйте / запишите тесты Selenium и запустите все из пользовательского интерфейса Jenkins на тестовом сервере.
Советы: разрабатывайте сценарии ANT локально, чтобы избежать удаления файлов на сервере (случалось с нами однажды:)). MXUnit сложен, когда дело доходит до запуска его из браузера, обратите внимание на переменные области приложения. Вы можете писать / редактировать тесты Selenium на многих языках, в нашем случае Java казался лучшим выбором. И у TeamCity, и у Дженкинса есть свои плюсы и минусы, лучше попробуйте оба и посмотрите, что вам больше подходит.
Ссылки по теме:
http://www.jetbrains.com/teamcity/
Вы также можете взглянуть на BDD (разработку, основанную на поведении) и включить JBehave http://jbehave.org/ в свой рабочий процесс гибкой разработки, и это здорово, если у вас есть "сложные" клиенты.
Удачи!
Посмотри в git вместо svn. Намного лучше. И Mylyn/Tasktop, чтобы связать все вместе в вашем идеале.