Тесты не запускаются после создания базы данных жидкой базой - PullRequest
0 голосов
/ 29 сентября 2011

Я тестирую слой источника данных, используя dbunit, junit, liquibase, hsqldb.Я использую в состоянии памяти hsqldb.Каждый раз, когда я запускаю тест, я создаю структуру БД с использованием liquibase через командную строку:

 @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 Ответ

3 голосов
/ 29 сентября 2011

Я собираюсь рискнуть дикой догадкой, но если вы используете liquibase.integration.commandline.Main.main(String[]) для запуска ваших сценариев обновления Liquibase, то вам не следует - этот метод завершается с System.exit(0).

Вместо этого посмотрите на это сообщение на форуме , в котором описано, как запускать обновления Liquibase программным способом, особенно для использования в модульных тестах.

...