前言:
前些日子碰到一個詭異的問題--用springJUnit進行測試,運行方法什么反應也沒有,控制台 也沒有輸出,百度也沒有答案--只好暫時作罷。今天我只好用上了排除法,建個測試小項目,將只要能測試的幾個Spring相關jar拷進去,測試正常,然后開始與原項目進行對比排除jar,看看到底是哪個/哪些jar惹的禍導致jar沖突,結果真是出乎我的意料--竟然是自家兄弟!原來這個項目中也有個junit-4.4的jar,把它刪掉就好了。(項目build path添加junt4依賴時會導入相應jar,與之沖突。)哎...害我直接放大招,浪費元氣。既然是測試異常,我怎么不一開始想到測試jar沖突呢?那樣的話一分鍾差不多就可以搞定--真是思想最大啊。
下面是問題描述及排查、解決過程:
問題描述:
springJunit測試某方法,發現控制台報空指針(這是后來報的,一開始是空白,什么也沒有),Junit節目也沒有任何反應。
控制台報的空指針異常分析:
右鍵進入異常所在jar(我有裝反編譯,如果是項目存在的jar是絕對可以進入的。),發現下面紫色框中的方法所在類沒有發現!
如:
難道是eclipse(我用的是STS,和eclipse差不多)的問題?
但是我用別的項目測試可以的。這肯定不是工具的問題了。--jar引起的。
接下來我就在可以正常測試的項目中一點點加jar,然后看加到哪里不行了,最后排查到了這個坑貨:
解決方法:刪除這個jar即可。
后記:也可能與工具有關系。因為當時開發用的是myeclipse,現在我在用eclipse,所以不排除在myeclipse可以測試這種可能。