2012-05-22 2 views
0

각각 별도의 컨텍스트 구성 파일 (XML)이있는 두 개의 별도의 통합 테스트 파일이 있습니다. 빌드주기에 두 가지를 모두 포함 시키면 문제가 발생하지만 그 중 하나에 @Ignore 주석을 넣으면 모든 것이 잘 작동합니다.서로 다른 컨텍스트 구성을 가진 여러 개의 Spring 통합 테스트 파일이 지속성 지속성을 방해합니다.

내가 가지고있는 구체적인 문제는 지속성입니다. 두 가지 통합 테스트가 빌드 사이클에있을 때 내 테스트 중 하나가 오브젝트를 데이터베이스에 올바르게 유지하지 못합니다. 나는 오류를 얻지 않으며, 지속성이 있다고 말한다. 그리고 Hibernate는 그것이 삽입된다는 로그 엔트리를 출력하지만, 데이터베이스 테이블을 검사 할 때 아무 것도 없다. 그런 다음 자체 테스트 (다른 ​​테스트에서는 @Ignore)를 실행하면 데이터베이스 테이블에 필 요한대로 씁니다.

문맥 설정 파일에서 같은 변수 이름을 사용하는 것이 중요합니까? 예를 들어 두 파일 모두 "deviceTxManager"라는 트랜잭션 관리자가 있습니다. 다른 테스트에 사용 된 구성 파일이 완전히 분리되어 있기 때문에이 파일은 OK라고 생각했습니다.

어떻게하면 다음 테스트를 실행하기 전에 이전 통합 테스트의 컨텍스트를 "제거"해야합니까?

답변

0

범인은 내 persistence.xml 파일에있었습니다. 나는 각각의 통합 테스트 클래스에 의해 분리되어 사용되는 것 같다. 따라서 두 번째 통합 테스트에서는 데이터베이스 스키마를 다시 작성하여 이전 통합 테스트에서 데이터베이스 변경 사항을 제거했습니다.

모든 통합 테스트를 실행하기 전에 persistence.xml에 한 번만 액세스했다고 생각했지만 분명히 틀렸어. 별도의 통합 테스트 클래스별로 별도로 액세스되며 각 테스트 클래스에 대해 데이터베이스가 지워지고 다시 작성됩니다.

관련 문제