在调试测试时,使用DatabaseManager连接到内存Hsql(高超音速)数据库

我想在我的IDE(Intellij IDEA 11.1.2)中调试测试时,使用hsql DatabaseManager(或swing版本,无关紧要)连接到内存中的HSQL数据库实例。

我按照这个答案的建议尝试了,但每次我这样做时,DatabaseManager进程/线程(我不知道哪个)启动并冻结。 如果kill / force退出它,调试会话也会死掉。

如果没有DatabaseManager冻结,我怎么能这样做呢?

您的Spring / JUnit正在进程模式下启动数据库。

你的选择是:

  1. 在服务器模式下启动hsqldb
  2. 或者从您的应用程序启动DBmanager
  3. 或者让断点仅停止当前线程,然后数据库管理器不会冻结

还请检查断点是否会停止所有线程。 大多数调试器都有此设置。 您可以更改此断点的此设置以仅停止JUnit测试。 另见:

断点是否会停止所有线程?

我认为这个问题有两个答案。

  1. Eugenio Cuevas在评论中给出的答案,如果您想在测试的单独进程/线程中启动DatabaseManager。
  2. 如果在进程内模式下运行,则在其中一个测试中添加对DatabaseManager.main()的调用。 确保在调用DatabaseManager.main()的行之后暂停执行(即,提示用户输入),以便测试不会继续执行。 请参阅此处以获取启动DatabaseManager的代码。