Почему это исключение не выбрасывается под Junit в Eclipse?

все

Я ломаю голову над проблемой, с которой я столкнулся, в частности, с тестом junit под Eclipse: в основном, у меня есть тестовый класс 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), так что это своего рода выстрел в темноте, чтобы увидеть, как кто-то испытывает подобную проблему или есть какие-либо идеи ...

Спасибо

Оливер


person Oliver    schedule 14.06.2011    source источник


Ответы (1)


Я думаю, что это может быть ошибка в плагине Eclipse. Я проследил код в исходном коде JUnit 4. Как вы упомянули, класс RunBefores выдаст исключение. Однако исключение попадет в список отказов EachTestNotifier через метод addFailure. Если плагин что-то игнорирует, это может объяснить, почему проблема пропущена.

person Virmundi    schedule 14.06.2011