@RunWith的配置文件(SpringJUnit4ClassRunner.class)

时间:2017-08-15 16:48:20

标签: java spring spring-junit springjunit4classrunner

我的TestSuite有两个配置,它们提供不同的注入bean。只要我使用注释设置我的配置文件,这就可以工作。

@ActiveProfiles( profiles={"a"})@ActiveProfiles( profiles={"b"})

但我似乎无法从Property Source文件中设置它

我的注释看起来像

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {AConfig.class, BConfig.class })
@PropertySource("classpath:/application.properties")
@TestPropertySource(locations = {"classpath:/application.properties"})
public abstract class AbstractTestIT {
   ...
}

application.properties的内容是

spring.profiles.active="a"

结果是不满意的依赖

如上所述,使用@ActiveProfiles进行设置工作并使用正确的。

几乎就像PropertySource和/或TestPropertySource不能使用@RunWith(SpringJUnit4ClassRunner.class)

1 个答案:

答案 0 :(得分:1)

  

只要我使用注释设置我的个人资料,这就有效。

这是预期的。

ActiveProfiles并不依赖于spring.profiles.active属性。

  

ActiveProfiles是一个用于声明的类级别注释   加载时应使用哪些活动bean定义配置文件   测试类的ApplicationContext。

作为profiles属性的别名的value属性需要使用要为测试激活的配置文件进行评估

  

要激活的bean定义配置文件。

它没有使用spring.profiles.active属性。

spring.profiles.active属性指定哪些配置文件在应用程序的整体配置中处于活动状态,而不是单元测试上下文。