2013-03-28 4 views
1

우리는 Spring, JPA, 메이븐 빌드, 유닛 테스트 용 JUnit 및 통합 테스트 용 TestNG를 사용하여 Java-Tomcat 프로젝트를 작성했습니다.통합 테스트 데이터를로드하는 방법

일부 통합 테스트에는 데이터베이스가 필요하므로 mvn verify을 실행할 때마다 새 DB가 만들어집니다. 이제 문제가 발생하여 테스트 데이터가 생성됩니다.

dbunit을 조사해야할까요? JPA를 사용하거나 다른 방법으로 개체를 계속 유지 하시겠습니까?

통합 테스트가 안정된 테스트 환경을 갖기 위해 실행될 때마다 DB에 테스트 데이터를로드하는 방법은 무엇입니까?

답변

1

라이브 데이터베이스 복사본을 가져 와서 트랜잭션을 테스트하므로 매번 롤백됩니다.

+1

라이브 데이터가 변경 가능하기 때문에 테스트 사례가 반복되지 않을 수 있습니다. – Raedwald

0

우리는 Dbunit을 사용합니다. junit 내에서 @BeforeClass 메소드로 테스트 데이터를로드합니다. @BeforeClass 및 @AfterClass 메서드에서 데이터를 삭제/정리합니다.

+0

모든 통합 테스트에 동일한 테스트 데이터가 필요한 경우에만 작동합니다. – Raedwald

+0

@Raedwald 예, 동일한 테스트 데이터이기 때문에 동일한 테스트 데이터가 필요합니다. 데이터 모델의 변경 사항을 적용하기 위해 XML을 변경해야하는 경우가 있습니다. –

2

메모리 데이터베이스가있는 dbunit을 사용하고 있습니다. 특정 테스트 데이터 세트를로드하고, 테스트를 실행하고, 각 테스트 후에 데이터베이스 내용을 확인하고 테스트가 실행 된 후 데이터베이스를 정리하는 것이 유용합니다.

dbunit의 "전문가"는 각 테스트 전후의 데이터베이스 상태를 제어 할 수있게합니다. "단점"은 SQL이 아닌 사용자 정의 XML 형식으로 테스트 데이터 세트로 작업한다는 것입니다. sql에서이 사용자 정의 xml 형식으로 내보낼 수 있지만 xml 파일을 수동으로 편집 할 때 간혹 필요합니다.

0

문제는 각 통합 테스트는 다른 테스트 데이터를해야 할 수도 있습니다으로 테스트 데이터

을 가지고 그것을 채울 지금, 나는이 세트 업 단계의 일부로 수행해야한다고 생각 각 통합 테스트

관련 문제