Java liquibase创建数据库后,不会启动测试
我正在使用dbunit、junit、liquibase和hsqldb测试数据源层。 我正在使用hsqldb的内存状态。 每次启动测试时,我都会通过命令行使用liquibase创建db结构: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
@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退出,但测试未终止并挂起。