【问题标题】:Spring boot multi module testingSpring Boot 多模块测试
【发布时间】:2015-03-17 16:24:00
【问题描述】:

我的问题是关于测试多模块 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 将在 WAR 中使用 "SpringbootModule.jar" 构建。

我对这两个项目都有单独的测试用例。我想让这些项目单独测试。 我的意思是,我的 SpringBootMainApplication 测试用例在执行测试用例时应该使用“Springbootapplicationinitializer.java”,而我的 SpringBootModule 测试用例在执行测试用例时应该使用“SpringModuleinitializer.java”。但是当它被打包成 WAR 并且 SpringModuleInitializer.java 不应该发挥作用或不应该有任何影响。

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 2018-04-15
      • 2017-02-09
      • 1970-01-01
      • 2020-10-02
      • 2020-09-24
      • 2015-03-23
      • 2015-07-30
      • 2017-05-17
      相关资源
      最近更新 更多