Я работаю над приложением Java EE 6, которое состоит из нескольких компонентов, которые все упакованы как отдельные проекты Maven:
MyAppInterface
- модуль OSGi, содержит классы сущностей, включая JPA иJAX-B аннотации MyAppRealm
- модуль OSGi, содержит пользовательские GlassMin LoginModule и Realm MyAppServer
- веб-приложение, содержит EJB, EntityFacades, шлюз JAX-RS, несколько административных JSP MyAppWeb
- веб-приложение, приложение GWT, связывается с MyAppServer через XML / REST
Причина, по которой все они разделены в разных проектах, связана с масштабируемостью - не всеразвернут везде.MyAppInterface
используется всеми другими проектами.Все работает на Glassfish 3.1.
Теперь я хотел бы представить концепцию интеграционного тестирования.Оставив MyAppWeb
на мгновение, я думаю, что было бы идеально проверить все через шлюз JAX-RS.
Как бы вы это сделали?
Очевидно, что весь стек должен быть «собран» перед выполнением тестов, включая бэкэнды (база данных, почтовый MTA).Должен ли я даже попытаться сделать это автоматически?Дженкинс строит все (но не развертывает его автоматически).
Вот мои мысли: поскольку каждый из компонентов сам по себе не «завершен», я думаю, что нет смысла помещать тесты в какие-либо изпроекты.Вместо этого я рассматриваю возможность добавления компонента MyAppIntegrationTest
, содержащего только тесты, с клиентом Jersey и MyAppInterface
в качестве зависимостей.Для тестирования я собрал бы все компоненты, развернул их на тестовой стеклянной рыбке, затем передал URL-адрес на MyAppIntegrationTest
и позволил ему запустить свои тесты.
Спасибо за ваши мысли!