Метод @AfterClass не заканчивает тестовый случай - PullRequest
0 голосов
/ 12 июня 2019

Я проверяю свою базу данных. Я использую метод @BeforeClass, чтобы удалить все данные из моей базы данных и вставить некоторые данные.

Затем я запускаю свои тесты.

Затем я хочу использовать мой метод @AfterClass, чтобы сделать то же самое, что и метод @BeforeClass.

Все работает, но когда я добавляю метод @Afterclass, мой тест навсегда останавливается на последнем тесте junit.

    @AfterClass
    public static void stop() {
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        Query query = session.createQuery("DELETE FROM DB");
        query.executeUpdate();
        session.getTransaction().commit();
        session.close();

        Session session3 = sessionFactory.openSession();
        session3.beginTransaction();
        Query query3 = session3.createSQLQuery("ALTER TABLE db AUTO_INCREMENT=1;");
        query3.executeUpdate();
        session3.getTransaction().commit();
        session3.close();

        Session session2 = sessionFactory.openSession();
        session2.beginTransaction();

            DB db = new DB();
            db.setTitle("Hallo Titel");

            session2.save(db);

        session2.getTransaction().commit();
        session2.close();
    }

Я точно знаю, что метод @AfterClass запускается, потому что последний вывод в консоли это:

Hibernate: удалить из БД Спящий режим: ALTER TABLE db AUTO_INCREMENT = 1;

Но по какой-то причине метод не заканчивается. Во вкладке Junit он застрял на последнем тесте.

Когда я удаляю метод @AfterClass, все заканчивается идеально.

...