我對Java EE 6的應用程序,包含多個組件,這些組件都被打包成獨立的Maven項目工作的集成測試提示:尋找一個Java EE應用程序
MyAppInterface
- OSGi的模塊,包含實體類,包括JPA和JAX-B註解MyAppRealm
- OSGi的模塊,包含自定義的Glassfish的LoginModule和境界MyAppServer
- Web應用程序,包含EJB的,EntityFacades,JAX-RS網關,一些管理的JSPMyAppWeb
- 不是一切都隨處部署 - Web應用程序,GWT應用程序,通過XML/REST
的原因,他們都在不同的項目中分離是可伸縮性原因與MyAppServer通信。所有其他項目都使用MyAppInterface
。一切都在Glassfish 3.1上運行。
現在我想介紹一下集成測試的概念。暫時排除MyAppWeb
一段時間,我認爲這將是通過JAX-RS網關測試所有內容的理想選擇。
你會如何做到這一點?
顯然整個堆棧需要在執行測試之前「組裝」,包括後端(數據庫,郵件MTA)。我應該甚至嘗試自動執行此操作嗎?詹金斯構建了一切(但不會自動部署)。
這裏是我的想法:因爲本身每個組件是不是「完整的」,我想沒有點放置測試中的任何項目。相反,我正在考慮添加一個組件MyAppIntegrationTest
,只有測試,Jersey Client和MyAppInterface
作爲依賴關係。爲了測試,我將構建所有組件,將它們部署在測試glassfish上,然後將URL傳遞到MyAppIntegrationTest
並讓它運行測試。
感謝您的想法!