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

Java liquibase创建数据库后,不会启动测试,java,exit,dbunit,liquibase,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/prop

我正在使用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
的输出。我在思想上有所发展。我在调试窗口中看到
进程以退出代码0完成。
,但同时我看到 测试尚未终止。我想第一条消息与“main”函数有关


有什么想法吗

我将冒昧地猜测一下,但是如果您使用
liquibase.integration.commandline.Main.Main(String[])
来运行您的liquibase更新脚本,那么您不应该使用
System.exit(0)
退出该方法


取而代之的是,以一个描述如何以编程方式运行Liquibase更新的例子,特别是在单元测试中使用的。

我将冒昧地猜测一下,但是如果您使用
Liquibase.integration.commandline.Main.Main(String[])
来运行Liquibase更新脚本,那么您就不应该知道该方法是以
System.exit(0)退出的


取而代之的是,以一个例子来描述如何以编程方式运行Liquibase更新,特别是在单元测试中使用。

所以应用程序只是挂起而从不退出?我已经更新了我的问题。某些进程退出时代码为0,但测试未终止并挂起。所以应用程序只是挂起而从不退出?我已更新了我的问题。某些进程以代码0退出,但测试未终止并挂起。