我正在开发一个由多个组件组成的Java EE 6应用程序,这些组件都打包为单独的Maven项目:
MyAppInterface
- OSGi模块,包含实体类,包括JPA和JAX-B注释MyAppRealm
- OSGi模块,包含自定义Glassfish LoginModule和Realm MyAppServer
- Web应用程序,包含EJB,EntityFacades,JAX-RS网关,一些管理JSP MyAppWeb
- Web应用程序,GWT应用程序,通过XML / REST与MyAppServer通信它们在不同项目中分离的原因是出于可伸缩性原因 - 并非所有内容都部署在各处。所有其他项目都使用MyAppInterface
。所有东西都在Glassfish 3.1上运行。
现在我想向其介绍集成测试的概念。暂时离开MyAppWeb
,我认为通过JAX-RS网关测试所有内容是理想的。
你会怎么做?
显然,在执行测试之前,整个堆栈需要“组装”,包括后端(数据库,电子邮件MTA)。我是否应该尝试自动执行此操作? Jenkins构建了所有内容(但不会自动部署)。
以下是我的想法:由于每个组件本身并不“完整”,我认为没有必要将测试放在任何项目中。相反,我正在考虑添加一个组件MyAppIntegrationTest
除了测试之外,其中只有测试版,其中Jersey Client和MyAppInterface
作为依赖项。为了测试,我将构建所有组件,将它们部署在测试glassfish上,然后将URL传递给MyAppIntegrationTest
并让它运行其测试。
感谢您的想法!
答案 0 :(得分:0)
我没有直接的Java EE 6经验。
但是,作为参考,在Eclipse插件开发中,为(集成)测试提供单独的项目/插件/包是很常见的。
因此,使用单独的MyAppIntegrationTest
组件来处理集成测试对我来说非常有意义。