在调试测试时,使用DatabaseManager连接到内存Hsql(高超音速)数据库
我想在我的IDE(Intellij IDEA 11.1.2)中调试测试时,使用hsql DatabaseManager(或swing版本,无关紧要)连接到内存中的HSQL数据库实例。
我按照这个答案的建议尝试了,但每次我这样做时,DatabaseManager进程/线程(我不知道哪个)启动并冻结。 如果kill / force退出它,调试会话也会死掉。
如果没有DatabaseManager冻结,我怎么能这样做呢?
您的Spring / JUnit正在进程模式下启动数据库。
你的选择是:
- 在服务器模式下启动hsqldb
- 或者从您的应用程序启动DBmanager
- 或者让断点仅停止当前线程,然后数据库管理器不会冻结
还请检查断点是否会停止所有线程。 大多数调试器都有此设置。 您可以更改此断点的此设置以仅停止JUnit测试。 另见:
断点是否会停止所有线程?
我认为这个问题有两个答案。
- Eugenio Cuevas在评论中给出的答案,如果您想在测试的单独进程/线程中启动DatabaseManager。
- 如果在进程内模式下运行,则在其中一个测试中添加对DatabaseManager.main()的调用。 确保在调用DatabaseManager.main()的行之后暂停执行(即,提示用户输入),以便测试不会继续执行。 请参阅此处以获取启动DatabaseManager的代码。