Spring启动多模块测试

时间:2015-03-17 16:24:01

标签: java unit-testing gradle integration-testing spring-boot

我的问题是关于测试多模块Spring启动应用程序。

我有一个多模块Spring Boot REST应用程序。该申请的结构如下:

**SpringbootMainApplication
--src/main/java
  --org.test
       +Springbootapplicationinitializer.java //Annotated with @SpringBootApplication
  --org.test.controller
  --org.test.service
  --org.test.dao
SpringbootModule
--src/main/java
   --org.module
        +SpringModuleInitializer.java //Annotated with @SpringBootApplication
   --org.module.controller
   --org.module.service
   --org.module.dao**

以上是我的应用程序的结构。

SpringBootMainApplication是主要项目。 SpringbootModule是SpringBootMainApplication中的子项目。 " SpringBootMainApplication.war" WAR将使用" SpringbootModule.jar"构建。在WAR内部。

我对这两个项目都有单独的测试用例。我想让这些项目单独测试。 我的意思是,我在执行测试用例时对SpringBootMainApplication的测试用例应该使用" Springbootapplicationinitializer.java"我在执行测试用例时对SpringBootModule的测试用例应使用" SpringModuleinitializer.java"。但当它被打包为WAR和  SpringModuleInitializer.java不应该起作用或者应该没有影响。

有什么办法可以实现这个目标吗?或者我应该完全避免使用SpringModuleInitializer.java,只在模块中执行单元测试,并仅使用Springbootapplicationinitializer.java进行集成测试。

如果有任何帮助,我使用gradle进行构建和包装。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,则无需在src / main / java中安装SpringModuleinitializer。由于它是根项目中的jar依赖项,因此您不需要它作为spring应用程序。 我想你想独立测试子模块,所以将 SpringModuleinitializer移动到src / main / test 。 它永远不会出现在你的战争中。

相关问题