Spring 启动多模块测试

Spring boot multi module testing

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

我有一个多模块 spring 引导 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 将在 WAR.

中使用 "SpringbootModule.jar" 构建

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

有什么方法可以实现吗?或者我应该完全避免 SpringModuleInitializer.java,仅在模块中执行单元测试并仅使用 Springbootapplicationinitializer.java.

进行集成测试

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

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