springboot单元测试 Could not open ServletContext resource [/application.properties]问题解决

本来项目都要交接验收了,客户粑粑突然要求单元测试而且覆盖率不低于百分之三十,怎么办,客户是上帝开干吧。
介绍一下框架,springboot 在src下创建文件夹与main文件夹同级上图,这里因为项目原因不能放全图,谅解下哈。
在这里插入图片描述

采用的是spring整合的test,主角登场
@RunWith和@springbootTest这两个注解
在这里插入图片描述

说个中间话题,项目的pom.xml依赖了很多测试包有
在这里插入图片描述
在这里插入图片描述
这两个包会有冲突,没有以下请跳过,删除spring-test 这个如果这个包有用来将inputstream转换为multipartFile文件,用的是这个MockMultipartFile
_input 类型为inputstream
做法是将这个文件打开将里面代码复制新建java文件到这个文件就行了。
好了接下来是今天真的问题所在上Caused by

在这里插入图片描述
注解就是上面的注解,在这里说一下网上的具体操作 首先将springbootTest()里面放入你启动类.class,
PropertySource(),这个里面放入"classpath:application.yml" 就是你的配置文件可能为yml和properties。ok 继续启动,
抱歉事情没那么简单仍然是这个无法读取的问题,最后今天的最终解决方案来了废话不多说了直接上图和代码

在这里插入图片描述

@RunWith(SpringRunner.class)
//@SpringBootTest(classes = DisciplineInspectionApplication.class )
@ContextConfiguration( classes = { DisciplineInspectionApplication.class})
@PropertySource("classpath:application.properties")

好吧,这段话是后来修改的。
本来正常了,后来配置文件改成了好几个有-dev,-test等
在这里插入图片描述
问题就来了各种bean无法注入,后来请教大佬,另一种解决方案来了看一下吧
在这里插入图片描述

@RunWith(SpringRunner.class)
@SpringBootTest(classes = DisciplineInspectionApplication.class,webEnvironment = SpringBootTest.WebEnvironment.NONE )
//@ContextConfiguration( classes = {DisciplineInspectionApplication.class})
@PropertySource("classpath:application.properties")

其中WebEnvironment有三个可选择,根据自己情况选择吧,None 表示不以web为容器启动,randon_port随机端口启动,default_port默认端口。到此修改结束。

没错就是我开头注释起来的,接下来问题完美解决。希望能帮到你,因为我也是百度一上午没解决的,很少有springboot单元测试博客。有用的话加个评论收藏点赞吧,大佬一键三连,别下一次定啦。有问题可以私信我。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章