2013-02-06 33 views
1

我使用FuseESB來運行我的應用程序,這是基本的OSGI容器(Felix),我想用數字方法來測試我的OSGI服務在集成模式下(包括DB ,外部服務等)。首先想到的是將特定包運行到容器中的能力,該容器將所有應用程序服務都包含在此包中定義的運行測試中。有人可以幫助解決這類問題嗎?謝謝!OSGI容器中的func集成測試

回答

2

有不同的測試方法。 由於FuseESB基於Apache Karaf,因此您可以使用apache karaf-pax-exam工具測試以自動測試完整的容器設置。 在OSGi容器中測試OSGi包的另一種方法是直接使用pax-exam。最後但並非最不重要的是,如果您只是想測試您可能使用pojosr測試的服務查找功能,那麼對於測試來說相當不錯,但是如果您依賴容器功能,它的限制尤其明顯。 那說你會在以下頁面查找資料:

Pax-Exam

Apache Karaf

sample how Pax-Web uses pax-exam in its iTests

+0

測試選項Achim的好摘要。在這種情況下,我傾向於使用卡拉夫考試,因爲考試聽起來像需要很多基礎設施。 –

-1

bndtools作爲在容器內部執行JUnit測試的可能性。

0

您可能會發現http://www.javabeat.net/2011/11/how-to-test-osgi-applications/有幫助的各OSGi的測試選項的概述。配置PAX-Exam將您的整個FuseESB容器拉到一起,讓您的所有應用服務存在都會帶來一些挑戰,但一旦您掌握了這個技巧,它可以非常方便。

+0

這就是pax-exam-karaf擁有強大功能的地方,這是一個「預先配置」的設置,可輕鬆與karaf玩:) –