在由liquebase创建数据库后不启动测试



我正在使用dbunit, junit, liquidbase, 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.在调试窗口,但在同一时间我看到测试尚未终止。我想第一条消息与"main"函数有关。

任何想法?

我要大胆猜测,但如果您使用liquibase.integration.commandline.Main.main(String[])来运行您的Liquibase更新脚本,那么您不应该-该方法与System.exit(0)一起退出。

相反,看看这个论坛帖子,它描述了如何以编程方式运行Liquibase更新,特别是在单元测试中使用。

相关内容

  • 没有找到相关文章

最新更新