Интеграционное тестирование func в контейнере OSGI
Я использую FuseESB для запуска моего приложения, которое по сути является контейнером OSGI (Felix), я хотел бы изобразить подход для тестирования моих служб OSGI в режиме интеграции (включая внешние зависимости, такие как DB, внешние службы и т. Д.). Сначала подумайте о возможности запуска определенного пакета в контейнер, который вовлекает все службы приложения в выполнение тестов, определенных в этом пакете. Может кто-нибудь помочь с такой проблемой? СПАСИБО!
3 ответа
Есть разные способы проверки этого. Поскольку FuseESB основан на Apache Karaf, вы можете протестировать его с помощью инструментов apache karaf-pax-exam, чтобы автоматически выполнить полную настройку контейнера. Другой способ просто протестировать ваши пакеты OSGi в контейнере OSGi - это напрямую использовать pax-exam. И последнее, но не менее важное: если вы просто хотите протестировать функциональность поиска сервисов, которую вы можете протестировать с помощью pojosr, это довольно удобно для тестирования, но имеет свои ограничения, особенно если вы зависите от функций контейнера. Тем не менее, вы найдете информацию на следующих страницах:
пример того, как Pax-Web использует pax-экзамен в своих iTests
Вы можете найти http://www.javabeat.net/2011/11/how-to-test-osgi-applications/ полезным в качестве обзора различных вариантов тестирования OSGi. Конфигурирование экзамена PAX-Exam для загрузки всего контейнера FuseESB и предоставления всех ваших сервисов приложений будет сопряжено с определенными трудностями, но, как только вы освоитесь, это может быть очень удобно.
bndtools как возможность выполнять тесты JUnit внутри контейнера.