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默认端口。到此修改结束。
好吧我日了狗了这是又一次后来修改,覆盖率编译器提示正常,用覆盖率插件
在这里插入图片描述

就是这个,生成提示文件一直为0,报的错解决办法是要将那个属性文件全都读取,那么大佬方法也不行了,我是怎么解决的呢,还是要多手打多思考啊,
手打@Prope,然后快捷提示看到了一个在这里插入图片描述
注解,看到s就知道是复数,那么里面改写什么呢,还是要多动手多看,按住ctrl点击去看在这里插入图片描述
原来就是propertysource数组啊,那好了把你的配置文件全写上就行了,总结还是要多手写多思考啊。
第二次修改结束,希望不会再有第三次修改。

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

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值