0

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.されますが、同時にテストが終了していないことがわかります。最初のメッセージは「メイン」機能に関連していると思います。

何か案が?

4

1 に答える 1

3

私は大げさな推測を危険にさらすつもりですがliquibase.integration.commandline.Main.main(String[])、Liquibase更新スクリプトを実行するために使用している場合は、そうすべきではありません。そのメソッドはで終了しSystem.exit(0)ます。

代わりに、特に単体テストで使用するために、プログラムでLiquibaseアップデートを実行する方法を説明しているこのフォーラム投稿をご覧ください。

于 2011-09-29T03:06:22.923 に答える