liquibase创建数据库后,测试不会启动

时间:2011-09-29 01:40:21

标签: java exit dbunit liquibase

我正在使用dbunit,junit,liquibase,hsqldb测试数据源层。 我在hsqldb的内存状态中使用。 每次我开始测试时,我都会通过命令行使用liquibase创建db结构:

 @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 SA@jdbc:hsqldb:mem:datasourcedb
...
Successfully released change log lock

Liquibase Update Successful

但由于某种原因,我看不到System.out.println的输出。我在IDEA发展。我在调试窗口中看到Process finished with exit code 0.,但同时我看到了 测试尚未终止。我想第一条消息与“主要”功能有关。

任何想法?

1 个答案:

答案 0 :(得分:3)

我会冒险猜测,但是如果你使用liquibase.integration.commandline.Main.main(String[])来运行你的Liquibase更新脚本那么你不应该 - 那个方法退出System.exit(0)

相反,请使用look at this forum post来描述如何以编程方式运行Liquibase更新,专门用于单元测试。