springboot juint 测试 Could not open ServletContext resource [/application.yml]

来源:2-7 单元测试

3不戒

2018-07-01 17:47

junit测试时一直提示Could not open ServletContext resource [/application.yml]

目录结构

https://img4.mukewang.com/5b38a268000147b505890556.jpg

service层测试代码


@RunWith(SpringRunner.class)
@SpringBootTest(classes = GirlApplication.class)//启动整个springboot功能
public class GirlServcieTest {
    @Autowired
    private GirlService  girlService;
    @Test
    public void findById(){
        Girl byId = girlService.findById(1);
        Assert.assertEquals(new Integer(9),byId.getAge());
    }
}

问题:

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.springboot.GirlApplication]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/application.yml]

at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:183) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]

at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:308) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]

at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:272) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:92) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:687) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:525) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) ~[spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]


写回答 关注

4回答

  • 慕九州1402278
    2019-08-21 18:21:57

    这是什么原因

  • 烦_fpy
    2018-12-24 10:55:23

    在@SpringBootTest中增加加webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT

    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
    public class PersonTest {
    }

    刚刚在github上找到一个方法,解决了

    慕九州140...

    确实可以用,什么原因哈

    2019-08-21 18:22:25

    共 1 条回复 >

  • 烦_fpy
    2018-12-24 10:52:04

    我也遇到同样的问题,请问楼主解决了么

  • 断翼天狼
    2018-07-06 16:57:15

    检查一下你的Springboot版本

    @SpringBootTest(classes={Application.class})// 指定启动类

    @SpringApplicationConfiguration(classes = Application.class)// 1.4.0 前版本

Spring Boot进阶之Web进阶

《2小时学习Spring Boot》之进阶教程,针对Web方面的相关技巧

104076 学习 · 393 问题

查看课程

相似问题