Spring引导单元测试不适用于application.yml

时间:2016-07-11 17:08:03

标签: java spring spring-boot

我无法进行单元测试以阅读application.yml。我已经按照下面的网址给出了答案,但它仍然无法正常工作。

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 个答案:

答案 0 :(得分:1)

例如,请参阅此问题的评论https://github.com/spring-projects/spring-boot/issues/603

  

声明@ContextConfiguration和   直接在测试类上的@SpringApplicationConfiguration不是   支持的。 @ContextConfiguration的第一个实例是   为给定的测试类发现(在测试类中的类上)   将使用层次结构或作为元注释。所有其他人都将   忽略。