我想在我的IDE(Intellij IDEA 11.1.2)中调试测试时使用hsql DatabaseManager(或swing版本,没关系)连接到内存中的HSQL数据库实例。
我已经按照这个答案的建议进行了尝试,但是每次我这样做时,DatabaseManager 进程/线程(我不知道是哪个)都会在调试断点被命中时启动并冻结。如果 kill/force 退出它,调试会话也会终止。
在不冻结 DatabaseManager 的情况下如何执行此操作?
我想在我的IDE(Intellij IDEA 11.1.2)中调试测试时使用hsql DatabaseManager(或swing版本,没关系)连接到内存中的HSQL数据库实例。
我已经按照这个答案的建议进行了尝试,但是每次我这样做时,DatabaseManager 进程/线程(我不知道是哪个)都会在调试断点被命中时启动并冻结。如果 kill/force 退出它,调试会话也会终止。
在不冻结 DatabaseManager 的情况下如何执行此操作?
您的 Spring/JUnit 正在以进程内模式启动数据库。
您的选择是:
还请检查您的断点是否停止了所有线程。大多数调试器都有这个设置。您可以将此断点更改为仅暂停 JUnit 测试线程而不暂停其他线程。另请参阅此处:
我认为这个问题有两个答案。
Thread.sleep(Long.MAX_VALUE);
在调用 DatabaseManager.main() 的行之后立即运行,这样测试就不会继续执行。有关启动 DatabaseManager 的代码,请参见此处。