Spring Boot 单元测试不适用于 application.yml
Posted
技术标签:
【中文标题】Spring Boot 单元测试不适用于 application.yml【英文标题】:Spring boot unit test not work with application.yml 【发布时间】:2016-11-13 17:28:32 【问题描述】:我无法进行单元测试以读取 application.yml。我已经按照下面的 url 进行了回答,但它仍然无法正常工作。
Spring Boot properties in 'application.yml' not loading from JUnit Test
感谢有人可以提供帮助。谢谢。
我的代码如下:
Application.java
@SpringBootApplication
@ImportResource("classpath:app-config.xml")
public class Application
public static void main(String[] args)
SpringApplication.run(Application.class, args);
TestTokenGenerator.java
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes=Application.class, initializers=ConfigFileApplicationContextInitializer.class)
@ContextConfiguration(locations="classpath:app-config-test.xml")
public class TestTokenGenerator
private static final Logger log = LoggerFactory.getLogger(TestTokenGenerator.class);
@Value("$test")
private String testB;
@Test
public void testGenerate() throws UnrecoverableKeyException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
log.info(testB);
log.info(tokenGenerator.generateToken());
application.yml
test: "123123"
【问题讨论】:
【参考方案1】:例如,请参阅有关此问题的 cmets https://github.com/spring-projects/spring-boot/issues/603。
同时声明@ContextConfiguration 和 @SpringApplicationConfiguration 直接在测试类上不是 支持的。 @ContextConfiguration 的第一个实例是 为给定的测试类发现(在测试类中的一个类上) 层次结构或作为元注释)将被使用。所有其他人将 忽略。
【讨论】:
以上是关于Spring Boot 单元测试不适用于 application.yml的主要内容,如果未能解决你的问题,请参考以下文章
Spring boot @Qualifier 不适用于数据源
Spring Boot Autowired 存储库不适用于 SpringRunner 和 JPA 数据