我正在测试我的数据库。我正在使用@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方法正在启动,因为控制台中的最后一个打印是这样的:
休眠:从数据库中删除 休眠:ALTER TABLE db AUTO_INCREMENT = 1;
但是由于某种原因该方法无法完成。 在“ Junit”选项卡中,它卡在了最后一个测试上。
当我删除@AfterClass方法时,一切都会完美终止。