繁体   English   中英

SpringBoot测试中的@ActiveProfile(“ integration-test”)无法解析

[英]@ActiveProfile(“integration-test”) in SpringBoot test not resolving

我具有以下配置的集成测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles("integration-test")
@ContextConfiguration(classes = { PersistenceJpaConfig.class, ContextConfig.class, ServiceConfig.class, WebConfig.class})
@WebAppConfiguration
public class LeadsIntegrationTest {

...

}

PersistenceJpaConfig类如下:

@Configuration
@EnableTransactionManagement
@ComponentScan({ "org.persistence", "org.common.persistence" })
@PropertySource({ "persistence-${spring.profiles.active}.properties" })
@EnableJpaRepositories(basePackages = org.persistence.dao")
public class PersistenceJpaConfig {

...

}

$ {spring.profiles.active}可以在活动配置文件为“ dev”时很好地解析,但是在@Act​​iveProfiles(“ integration-test)中设置为“ integration-test”时,它无法解析。 .properties和persistence-integration-test.properties位于src / main / resources中,dev的属性具有mysql配置,Integration-test具有h2嵌入式配置,用于运行与dev数据隔离的集成测试。运行,我得到以下信息:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.profiles.active' in string value "persistence-${spring.profiles.active}.properties"

这里发生了什么?

您没有告诉您如何设置dev配置文件,但我最好的猜测是您使用系统属性对其进行了设置。 当您使用@ActiveProfiles时,配置文件的解析来不及了,以至于@PropertySource注释无法获取该值。

无论如何,您是否知道在Spring Boot中开箱即用地支持该自定义代码的100%? 为什么不能将这些东西放在application-integration-test.propertiesapplication-dev.properties

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM