2011-09-29 44 views
0

我使用dbunit,junit,liquibase,hsqldb測試數據源層。 我正在使用hsqldb的內存狀態。 每次我開始測試,我創建數據庫結構使用liquibase通過命令行:數據庫創建後不開始測試由liquibase

@BeforeClass 
public static void setupDatabase() throws Exception 
{ 
    ... 
    try{ 
     Main.main(new String[]{ 
      "--defaultsFile=db/properties/db.test.properties", 
      "--logLevel=debug", 
      "update"} 
     ); 
    }catch(Exception e){ 
     System.out.println( e); 
    } 
    System.out.println("QQQQ"); 
    ... 
} 

在輸出中,我可以看到,SQL腳本執行成功:

Connected to [email protected]:hsqldb:mem:datasourcedb 
... 
Successfully released change log lock 

Liquibase Update Successful 

但由於某些原因,我看不到System.out.println的輸出。我在IDEA中開發。我在調試窗口中看到Process finished with exit code 0.,但同時我看到 測試未被終止。我想第一條消息與「主」功能有關。

任何想法?

+0

因此,該應用程序只是掛起,從不退出? – claymore1977

+0

我已更新我的問題。某些進程退出代碼0,但測試未終止並掛起。 – Alexandr

回答

3

我要冒險猜測,但如果您使用liquibase.integration.commandline.Main.main(String[])來運行您的Liquibase更新腳本,那麼您不應該 - 該方法退出System.exit(0)

取而代之,以look at this forum post爲例介紹如何以編程方式運行Liquibase更新,專門用於單元測試。

+0

一個很好的解決方案!謝謝! – Alexandr

相關問題