Интеграционное тестирование двух граальских веб-приложений одновременно? - PullRequest
5 голосов
/ 03 мая 2011

У меня есть два приложения Grails, A и B.

A делает явные вызовы REST для B, и мне нужен автоматический способ узнать, как это работает. В традиционной модели интеграционных испытаний Grails одновременно обрабатывается только один экземпляр. Я использую jenkins в качестве сервера сборки, но кажется, что мне нужно будет развернуть обе системы и выполнить тесты локально, что я не уверен, что jenkins поддерживает.

Какой лучший способ выполнить полное функциональное тестирование интеграции A с использованием B?

Ответы [ 2 ]

0 голосов
/ 20 августа 2011

Это не уникально для Грааля или даже Дженкинса, но вот что вы можете сделать.

Настройте функциональный тестовый сервер, на котором вы сможете развертывать свои приложения. Создайте одно задание Jenkins для опроса проекта A на предмет изменений SCM и развертывания на сервере A, и одно задание для опроса проекта B на предмет изменений SCM и развертывания на сервере B.

Создать последующую сборку, C, которая запускает любые функциональные тесты для объединенной системы. Обратите внимание, что вы, вероятно, не хотите загружать какую-либо базу данных здесь, поэтому не используйте этап тестирования интеграции. Это где вы будете использовать что-то вроде селена. Удостоверьтесь, что блокировали обе сборки верхнего уровня A и B в сборках нижнего потока, и блокируйте C во всех последующих сборках.

Таким образом, ни один сервер не будет повторно развернут во время пробного запуска.

Что касается интеграционного тестирования, представьте, что B похож на любой другой веб-сервис, такой как база данных, сервер LDAP или что-либо еще. Если вам нужен полный интеграционный тест, вы просто настроите сервер для своего теста и запустите его, верно? Делать то же самое. Используя вашу B сборку или другую сборку, создайте задание тестирования интеграции, которое явно знает о сервере B.

0 голосов
/ 04 мая 2011

используйте jenkins для развертывания ваших приложений в контейнере после успешной сборки.и иметь некоторое свойство среды или конфигурацию, которая устанавливает URL-адрес приложения B в приложении A.

...