2011-06-14 72 views
0

所有爲什麼在Eclipse的Junit下不會引發這個異常?

我抓我的頭在我JUnit測試的Eclipse下尤其是碰到一個問題: 基本上,我有一個JUnit 4測試類,與 @BeforeClass註釋的初始化方法嘗試建立DB連接,它本質上呼籲:

try { 
     return DriverManager.getConnection (DB_CONNECTION_URL, 
              DB_USERNAME, 
              DB_PASSWORD); 
    } catch (SQLException ex) { 
     throw new MyPersistenceException("Error: unable to connect to database"); 
    } 

現在,如果我跑了一個獨立的main()的代碼,按預期數據庫脫機拋出異常。但是,只要我將它移入junit @BeforeClass,異常在黑洞中就會丟失 - 您仍然可以追蹤異常(請記住,數據庫處於脫機狀態),但是控制檯不會顯示任何內容。

我對這個行爲感到莫名其妙,似乎與Eclipse和Junit有關(特別是NetBean下的單元測試運行良好) - 因此它在黑暗中看到任何人都會遇到類似問題或有任何想法...

感謝

奧利弗

回答

1

我認爲這可能是在Eclipse插件的錯誤。我追蹤了JUnit 4源代碼。如您所述,RunBefores類將拋出異常。但是,該異常將通過addFailure進入EachTestNotifier的故障列表。如果插件忽略了某些內容,它可以解釋爲什麼錯過了該問題。

相關問題