Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring集成测试模块从单独的模块运行应用程序,没有DB配置的属性_Java_Spring_Integration Testing_Multi Module - Fatal编程技术网

Java Spring集成测试模块从单独的模块运行应用程序,没有DB配置的属性

Java Spring集成测试模块从单独的模块运行应用程序,没有DB配置的属性,java,spring,integration-testing,multi-module,Java,Spring,Integration Testing,Multi Module,给定一个名为“mdcore”的spring引导gradle模块,该模块带有一个spring应用程序运行程序和一个PostgresDbConfig,用于将其连接到数据库 该应用程序运行良好,并解析@Config中“application.yml”文件中的属性 @Value("${db.default.pool.size}") Integer maxPoolSize; 现在,一个名为“integrationtests”的单独模块尝试在“md core”模块中启动Spring引导运行程序 测试将启动

给定一个名为“mdcore”的spring引导gradle模块,该模块带有一个spring应用程序运行程序和一个PostgresDbConfig,用于将其连接到数据库

该应用程序运行良好,并解析@Config中“application.yml”文件中的属性

@Value("${db.default.pool.size}")
Integer maxPoolSize;
现在,一个名为“integrationtests”的单独模块尝试在“md core”模块中启动Spring引导运行程序

测试将启动“md core”Spring runner,但在尝试解析@Config中的属性时,它找不到任何属性

我已经尝试在测试中直接解析“application.yml”。它不会将属性发送到“md core”模块。在测试中添加“application.yml”属性的任何尝试都会将它们解析到测试文件中,但在访问“md core”模块时不会发送它们

是否有任何定义应该在测试中通过注释或gradle构建文件给出

启动测试时的类路径不包含“mdcore”资源位置,只包含类

这可能是一个原因吗?如果是,如何在gradle构建文件的类路径中引用资源


对于任何错误或不完整的信息,我深表歉意,这篇文章是在一个工作日结束时撰写的,希望在早上之前有答案。

鉴于这种情况,集成测试使用应用程序.properties文件的解决方案是在测试类的@ContextConfiguration注释中添加initializers=ConfigFileApplicationContextInitializer.class

@ContextConfiguration(
  initializers = ConfigFileApplicationContextInitializer.class,
  classes = {SomeApp.class})
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class SomeIntegrationTest {

  @Test
  public void testTheIntegration() {
    // some integration tests here
  }
}
答案也记录在中,最初在中发现不太详细

@ContextConfiguration(
  initializers = ConfigFileApplicationContextInitializer.class,
  classes = {SomeApp.class})
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class SomeIntegrationTest {

  @Test
  public void testTheIntegration() {
    // some integration tests here
  }
}