使用Maven的JUnit数据源配置

时间:2017-06-22 07:29:46

标签: spring-boot maven-3 junit4

我们在应用程序中配置了多个Spring Boot配置文件,并根据激活的配置文件更改了数据源。

我们为Junit Tests分开数据源。现在,我们希望将此数据源用于JUnit测试,而不管激活的配置文件。

我们能够在每个测试类中使用@TestPropertySource实现此目的,但我们需要在pom.xml中的一个位置使用此配置。我知道maven-surefire-plugin用于执行Junit测试,但不确定我们如何在那里配置特定的数据源。

有没有办法实现这个目标? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这样做的一个简单方法是创建配置文件可靠的配置作为正常配置的包装器,如下所示:

简介1:

@Profile("ds1")
@Import(Ds1Configuration.class)
public class Ds1ProfileConfiguration {}

简介2:

@Profile("ds2")
@Import(Ds2Configuration.class)
public class Ds2ProfileConfiguration {}

其中导入的配置包含实际的bean定义:

public class Ds1Configuration {
    @Bean
    public DataSource dataSource(){...}
}

public class Ds2Configuration {
    @Bean
    public DataSource dataSource(){...}
}

这将分离您的配置文件和配置,以便您可以在测试中使用这些:

@SpringBootTest(classes = Ds2Configuration.class)