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單元測試博客。有用的話加個評論收藏點贊吧,大佬一鍵三連,別下一次定啦。有問題可以私信我。

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