为什么这个异常不会在Eclipse中的Junit下抛出?

时间:2011-06-14 01:04:05

标签: eclipse junit4

所有

我正特别关注Eclipse中遇到的junit测试问题: 基本上,我有一个junit 4测试类,初始化方法用注释 @BeforeClass尝试设置数据库连接,基本上调用:

    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 个答案:

答案 0 :(得分:1)

我认为这可能是Eclipse插件中的一个错误。我已经在JUnit 4源代码中跟踪了代码。如你所提到的,RunBefores类将引发异常。但是,异常将通过addFailure进入EachTestNotifier的失败列表。如果插件忽略某些东西,它可以解释为什么错过了这个问题。