2011-06-10 4 views
0

JPA와 Hibernate를 사용하는 간단한 dataImport 클래스를 실행하려고합니다.JPA Hibernate Maven testing -> unknown class

내 클래스가 SRC/테스트/자바/폴더에있는
Exception in thread "main" java.lang.IllegalArgumentException: Unknown entity: ch.itartis.relman.entities.code.ReferenceCode 
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:675) 
    at ch.itartis.relman.service.test.dataimport.DataImport.doSave(DataImport.java:111) 
    at ch.itartis.relman.service.test.dataimport.DataImport.main(DataImport.java:43) 

, 나는 SRC/테스트 서비스-config.xml에 있습니다 : 내 클래스를 실행하는 경우

, 난 항상 다음과 같은 오류가/resources/그리고 src/test/resources/META-INF /에 persistence.xml도있다.

src/main/java/... 폴더에서 클래스를 실행하면 작동합니다. 하지만 src/test/java /에 클래스를 갖고 싶으면 그렇지 않습니다.

내가 뭘 잘못하고 있니?

고맙습니다.

+0

'내 수업을 실행 하시겠습니까?'란 무엇을 의미합니까? 그것을 어떻게 실행합니까? 문제는 아마도/src/test/java가 클래스 경로에 없다는 것입니다. – Simeon

+1

http://stackoverflow.com/questions/4885836/no-autodetection-of-jpa-entities-in-maven-verify – axtavt

답변

3

당신은 자신의 메인 메소드에서 코드를 실행하고 있는데, 나는 그것이 maven에 의해 실행되지 않는다고 생각하고있다. 테스트 코드는 메이븐 (maven)에 의해 생성 된 이슈의 일부로 포함되지 않으며, 단위 테스트를 실행하기위한 마벤 (mavens) 테스트 단계에서만 포함됩니다.

maven을 사용하는 경우 maven이 자신의 롤링 대신 빌드 프로세스의 일부로 실행하는 JUnit 테스트를 만드는 것이 어떻겠습니까?

+0

좋아, 이제는 maven에서 시작한 JUnit 테스트를 통해 클래스를 실행한다. 하지만 난 아직 java.lang.IllegalArgumentException : 알 수없는 엔티티 : ch.itartis.relman.entities.code.ReferenceCode 문제가 있습니다. "ReferenceCode"-Class가 다른 프로젝트에 있기 때문에 문제가있을 수 있습니다. 내 동면이 다른 프로젝트의 수업을 찾도록하려면 어떻게해야합니까? –

0

Robin의 답변을 완료하려면 exec:java을 사용하여 classpathScopetest으로 설정하면 모든 것이 정상적으로 작동합니다.