2010-05-21 5 views
1

작은 응용 프로그램 용으로 MySQL에 연결하기 위해 JDBC를 사용하고 있습니다. 실제 데이터베이스를 변경하지 않고 테스트하기 위해 JUnit 테스트를 위해 메모리에서 HSQL을 사용하고 있습니다.Spring 프로젝트에서 JUnit 테스트를 실행할 수 있지만 main 메소드로 실행할 수없는 이유는 무엇입니까?

DI 및 DAO 용으로 Spring을 사용하고 있습니다. 나는 모의 DB를 사용하여 내 JUnit 테스트 내 HSQL 데이터 소스

<bean id="mockDataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource"> 
    <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> 
    <property name="url" value="jdbc:hsqldb:mem:mockSeo"/> 
    <property name="username" value="sa"/> 
</bean> 

이 잘 작동을 구성하고있어 어떻게 여기입니다.

Error creating bean with name 'mockDataSource' defined in class path resource [beans.xml]: 
Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: 
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: 
Could not load JDBC driver class [org.hsqldb.jdbcDriver] 

이클립스에서 실행 해요, 그리고 내가 Maven 플러그인을 사용하고 있습니다 : 나는 main 메소드를 실행하려고하면, 나는 다음과 같은 오류를 찾을 수 있습니다. 이 테스트가 작동하는 이유는 없지만 main()이 아닌 이유는 무엇입니까? 내 봄 구성 파일에서 HSQL 데이터 원본에 대한 모든 참조를 제거하면 작동하기 때문에 main 메서드 자체가 문제가 아님을 알고 있습니다.

답변

3

m2eclipse는 응용 프로그램을 'Java 응용 프로그램'으로 실행할 때 클래스 범위에 테스트 범위 종속성을 추가하지 않습니다. hsql 종속성의 범위를 '컴파일'(기본값)으로 변경해야합니다.

관련 문제