Ищите советы по интеграционному тестированию приложения Java EE - PullRequest
2 голосов
/ 20 июля 2011

Я работаю над приложением 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 и позволил ему запустить свои тесты.

Спасибо за ваши мысли!

1 Ответ

0 голосов
/ 21 июля 2011

У меня нет опыта работы с Java EE 6.

Однако, для справки, при разработке плагинов Eclipse достаточно часто иметь отдельные проекты / плагины / пакеты для (интеграционного) тестирования.

Таким образом, использование отдельного компонента MyAppIntegrationTest для обеспечения интеграционного тестирования имеет для меня смысл.

...