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

时间:2011-07-20 15:00:08

标签: java-ee integration-testing

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

感谢您的想法!

1 个答案:

答案 0 :(得分:0)

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

但是,作为参考,在Eclipse插件开发中,为(集成)测试提供单独的项目/插件/包是很常见的。

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