Это не уникально для Грааля или даже Дженкинса, но вот что вы можете сделать.
Настройте функциональный тестовый сервер, на котором вы сможете развертывать свои приложения. Создайте одно задание Jenkins для опроса проекта A
на предмет изменений SCM и развертывания на сервере A
, и одно задание для опроса проекта B
на предмет изменений SCM и развертывания на сервере B
.
Создать последующую сборку, C
, которая запускает любые функциональные тесты для объединенной системы. Обратите внимание, что вы, вероятно, не хотите загружать какую-либо базу данных здесь, поэтому не используйте этап тестирования интеграции. Это где вы будете использовать что-то вроде селена. Удостоверьтесь, что блокировали обе сборки верхнего уровня A
и B
в сборках нижнего потока, и блокируйте C
во всех последующих сборках.
Таким образом, ни один сервер не будет повторно развернут во время пробного запуска.
Что касается интеграционного тестирования, представьте, что B
похож на любой другой веб-сервис, такой как база данных, сервер LDAP или что-либо еще. Если вам нужен полный интеграционный тест, вы просто настроите сервер для своего теста и запустите его, верно? Делать то же самое. Используя вашу B
сборку или другую сборку, создайте задание тестирования интеграции, которое явно знает о сервере B
.