2011-09-29 2 views
0

dbunit, junit, liquibase, hsqldb를 사용하여 데이터 소스 계층을 테스트하고 있습니다. hsqldb의 메모리 상태에서 사용하고 있습니다. SQL 스크립트가 성공적으로 실행되어 있는지, 내가 볼 수있는 출력에서 ​​시험은 데이터베이스 생성 후 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"); 
    ... 
} 

: 나는 테스트를 시작 때마다, 나는 명령 줄을 통해 liquibase 사용하여 DB 구조를 만들

Connected to [email protected]:hsqldb:mem:datasourcedb 
... 
Successfully released change log lock 

Liquibase Update Successful 

을하지만 어떤 이유로 I System.out.println의 출력을 볼 수 없습니다. 나는 IDEA에서 발전한다. 디버그 창에서 Process finished with exit code 0.을 볼 수 있지만 동시에 나는 테스트가 종료되지 않았 음을 알 수 있습니다. 첫 번째 메시지가 "main"함수와 관련 있다고 가정합니다.

아이디어가 있으십니까?

+0

그래서 앱이 멈추지 않고 종료됩니다. – claymore1977

+0

내 질문을 업데이트했습니다. 일부 프로세스는 코드 0으로 종료되지만 테스트는 종료되지 않고 중단됩니다. – Alexandr

답변

3

난 짐작할 수 있겠지만 Liquibase 업데이트 스크립트를 실행하기 위해 liquibase.integration.commandline.Main.main(String[])을 사용하고 있다면 그 방법은 System.exit(0)으로 끝나지 않아야합니다.

대신 Liquibase 업데이트를 프로그래밍 방식으로, 특히 단위 테스트 용으로 실행하는 방법을 설명하는 look at this forum post을 가져 가십시오.

+0

좋은 해결책 !!!! 고맙습니다! – Alexandr

관련 문제