在開(kāi)發(fā)過(guò)程中我們有時(shí)會(huì)遇到狠多的問(wèn)題和bug,對(duì)于在編譯和運(yùn)行過(guò)程中出現(xiàn)的問(wèn)題很好解決,因?yàn)榭梢栽阱e(cuò)誤日志中得到一定的錯(cuò)誤提示信息,從而可以找到一些對(duì)應(yīng)的解決辦法。但是有時(shí)也會(huì)遇到一些比較詭異的問(wèn)題和bug,沒(méi)有任何的跡象,沒(méi)有任何的提示它過(guò)去了,但是我們的項(xiàng)目受到影響運(yùn)行不起來(lái)。別的我們先不說(shuō)了,說(shuō)我在開(kāi)發(fā)中使用的Junit的遇到的一個(gè)比較糾結(jié)的bug問(wèn)題吧,這個(gè)問(wèn)題的比較的詭異,困擾了我將近的時(shí)間,終經(jīng)過(guò)同事和網(wǎng)上資料的幫助將這個(gè)問(wèn)題解決了,特在這里分享給需要的人。
一、問(wèn)題描述:
在很多時(shí)候我們?cè)陧?xiàng)目中使用到SSH框架的時(shí)候,我們都會(huì)用到單元測(cè)試Junit,通過(guò)它可以監(jiān)控?cái)?shù)據(jù)庫(kù)的交互信息,從而反饋給開(kāi)發(fā)者。有時(shí)我們?cè)谑褂胔ibernate的時(shí)候加入的hibernate.cfg.xml配置文件,有時(shí)由于自己的不小心把一些地方寫(xiě)錯(cuò)了,例如說(shuō)mapping的標(biāo)簽內(nèi)容,如下圖:
然后你在運(yùn)行啟動(dòng)Junit測(cè)試,這時(shí)它會(huì)給報(bào)錯(cuò),有錯(cuò)誤提示,如下圖:
但是出現(xiàn)以上的情況還是比較好的,我們可以很快的解決。重點(diǎn)是有時(shí)它根本不給出現(xiàn)錯(cuò)誤,好像直接把這個(gè)錯(cuò)誤吞了一樣,直接結(jié)束了,你的項(xiàng)目是運(yùn)行不起來(lái)。碰到這種情況是糾結(jié)的,但是這個(gè)問(wèn)題只是出現(xiàn)額偶然的,不是必然的。因此也需要引起我們的注意。
二、解決問(wèn)題的辦法:
對(duì)于這個(gè)問(wèn)題的解決我們有具體的2種辦法來(lái)處理:
1、可以首先對(duì) sf=new AnnotationConfiguration().configure().buildSessionFactory(); 這個(gè)初始化行try catch ,當(dāng)它運(yùn)行時(shí)出現(xiàn)錯(cuò)誤時(shí)會(huì)拋出異常信息,具體見(jiàn)圖:
2、我們也可以自己寫(xiě)個(gè)main方法,在里面調(diào)用初始化的方法,從而讓它給你提示錯(cuò)誤的信息,具體見(jiàn)圖:
至此到這里Junit這個(gè)詭異的bug的說(shuō)明和解決辦法給大家分享結(jié)束了,需要轉(zhuǎn)載的朋友請(qǐng)注明出處,保留此處的位置。