寻找Java EE应用程序集成测试的技巧



我正在开发一个由多个组件组成的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,并让它运行测试。

谢谢你的想法!

我没有直接的Java EE 6经验。

然而,作为参考,在Eclipse插件开发中,使用单独的项目/插件/包进行(集成)测试是很常见的。

因此,使用单独的MyAppIntegrationTest组件来处理集成测试对我来说非常有意义。

相关内容

最新更新