gpt4 book ai didi

java - Spring Boot 多模块测试

转载 作者:行者123 更新时间:2023-11-30 03:30:49 26 4
gpt4 key购买 nike

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

我有一个多模块 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 进行构建和打包。

最佳答案

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

关于java - Spring Boot 多模块测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com