2011-03-02 2 views
0

데이터 세트 (XML로 정의 됨)가 있으며 PostGreSQL, JPA로 주석 된 POJO 및 Junit과 함께 테스트 용으로 사용됩니다.DBunit은 데이터 세트에 정의 된 테이블을 찾을 수 없습니다.

테스트를 실행하면 테이블과 시퀀스가 ​​데이터베이스에 만들어 지지만 테이블 정의와 열로 데이터 집합 (xml)을 읽으면 다음 오류가 발생합니다. org.dbunit.dataset.NoSuchTableException "nameoftable"모든 대문자와 보통 대문자를 사용하여 테이블의 이름을 넣으려고했는데 작동하지 않습니다. 이 테이블은 공용 스키마에서 만들어졌고 public으로 테이블에 xml을 정의하려고 시도했지만 "nameoftable"하지만 어떤 아이디어도 작동하지 않습니까?

2.2.2, 2.3.0 및 2.4.5 버전에서 DUnit을 사용하여이 테스트를 실행하려고했습니다.

감사합니다.

답변

1

DBUnit을 사용하면 특정 스키마를 사용하여 테스트하거나 전체 데이터베이스 (잠재적으로 여러 스키마 포함)를 사용할 수 있습니다. 후자를 사용하는 경우 가져 오기/내보내기 할 때 데이터 세트에서 스키마를 지정해야하거나 혼동을 야기 할 수 있습니다. PostgreSQL에서 적어도 다른 것으로 시도하지 않았습니다.

이가에 다음 코드를 추가 적용하려면 :

if (strSchema == null || strSchema.isEmpty()) { 
    conn = new DatabaseConnection(jdbcConnection); 
    conn.getConfig().setProperty(
      "http://www.dbunit.org/features/qualifiedTableNames", true); 
} 
else 
    conn = new DatabaseConnection(jdbcConnection, strSchema); 

중요한 비트는 속성의 설정입니다; 나머지는 내가 DB 또는 스키마 (최대 절전 모드 구성 XML에서 추출한 스키마 이름을 기반으로)에 관련된 연결을 만들기 위해 사용하는 것입니다.