Почему это исключение не брошено под Junit в Eclipse? - PullRequest
0 голосов
/ 14 июня 2011

все

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

Спасибо

Оливер

1 Ответ

1 голос
/ 14 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...