当前位置: 首页 > 知识库问答 >
问题:

如何将测试和主属性注入多模块gradle spring boot项目的每个子模块中?

欧阳山
2023-03-14

这是我的项目的结构。

  • 父级不包含代码。
  • 模块child1是一个Spring引导应用程序。
  • 模块child2和child3是JAR库。
  • Child1依赖于child2和Child3
parent
      | build.gradle
      | settings.gradle
      | [no code]
child1
      | build.gradle
      | src/
          | main/
              | java/
              | resources/
                  | application.properties
          | test/
              | java/
              | resources/
                  | application.properties
child2
      | build.gradle
      | src/
          | main/
              | java/
          | test/
              | java/
child3
      | build.gradle
      | src/
          | main/
              | java/
          | test/
              | java/

特别是:

  1. child1中的html" target="_blank">测试被注释为SpringBootTest,但child2和child3最好不依赖于spring boot(仅用于autowiring的spring框架)
  2. 我希望能够在子模块中的配置类上使用@value注释。
  3. 如何指示spring从child1模块中的application.properties解析这些属性,使用src/test/resources中的一个进行测试,使用src/main/resources中的一个进行生产?
  4. 由于我选择了一个非常“古典”的结构,我希望能够用尽可能少的运动部件来实现这一点。特别是,我希望不必在注释中显式指定路径。

共有1个答案

谯阳伯
2023-03-14

我假设在child2child3中,只需要application.properties进行测试。然后在测试中,您可以使用@TestPropertySource,在这里您可以将相对路径指向Child1中的属性文件,或者显式添加DataPath:

@TestPropertySource(properties = { "datapath=value" })
public class Child2Test {
 类似资料:
  • 我很困惑于嘲笑如何对实现进行单元测试。问题是我想嘲笑不同的预期行为。 有没有办法做到这一点?由于导入只能在文件的顶部,并且为了能够模拟某些内容,必须在导入之前声明它。我也试图传递一个本地函数,这样我就可以覆盖行为,但jest抱怨你不允许传递任何本地的东西。 在内部,可以想象使用

  • 是否可以为我的多模块maven项目的每个模块生成单独的jar文件。我的项目结构 应用程序模块具有main()方法。模块1和模块2具有由UI使用的RESTendpoint。目前,当我在应用程序模块上运行mvn包时,我得到了一个大的胖jar,其中包含所有Spring Boot依赖项以及每个模块1和模块2的依赖项。 相反,我想为module1和module2创建一个单独的jar文件。这样当我在modul

  • 我有一个多模块Spring引导梯度项目。我在每个模块yml文件中都有指向数据库的属性:user、pass、URL。 这是一个可行的解决方案,但很难改变项目数据库。每次我想切换数据库用户或url,我必须改变10+yml文件。 如何避免这一点?

  • null 如果有人能给我指明正确的方向,我将不胜感激。 提前道谢!

  • 我正在我的querying-api模块中编写测试用例来测试我的API,并且我希望在测试开始用预定义的测试数据加载数据库之前运行我的数据库加载器服务,同时测试加载器是否仍然工作。但是,在运行时出现以下错误: 测试引用公共域定义库没有问题... 父POM文件: 数据库加载程序POM文件:

  • 任何一个类都可以作为主模块,只要你将其配置在 web.xml 中,这样的设计主要是为了方便 一些非 JSP/Servlet 标注的 web 服务器整合 Nutz.mvc 框架。 在主模块中,你可以声明如下的注解: @Modules - 声明应用的所有子模块 @IocBy - 设置应用所采用的 Ioc 容器 @SetupBy - 应用启动以及关闭时的额外处理 @Views - 自定义的扩展视图 @L