我的TestSuite有两种配置,它们提供了不同的bean用于注入。只要我使用注释设置我的个人资料,这就可以工作。
@ActiveProfiles( profiles={"a"})
和@ActiveProfiles( profiles={"b"})
但我似乎无法从属性源文件中设置它
我的批注看起来像
@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)
一起使用
我用注释设置我的个人资料,这就可以了。
这是意料之中的。
ActiveProfiles
不依赖于spring.profiles.active
属性。
ActiveProfiles是一个类级注释,用于声明 装入 测试类的应用程序上下文。
作为value
属性别名的profiles
属性需要使用要为测试激活的配置文件进行值
要激活的 Bean 定义配置文件。
它不使用spring.profiles.active
属性。
spring.profiles.active
属性指定哪些配置文件在应用程序的整体配置中处于活动状态,而不是单元测试上下文中的活动配置文件。