2011-06-14 185 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的故障列表。如果插件忽略了某些内容,它可以解释为什么错过了该问题。

相关问题