2011-07-26 3 views
0

다음과 같은 프로젝트 레이아웃이 있습니다.프로젝트 레이아웃 및 스프링 테스트 지원 문제

SRC

SRC/테스트/자바

SRC/테스트/자원

우리 때문에 일 이전 developemnt의 코드에 대한 SRC/메인/(자바, 자원)를 추가 기운 다.

src/test/java는 테스트중인 클래스가 src 폴더에있는 것과 동일한 패키지에 유닛 테스트와 통합 테스트를 모두 가지고 있습니다.

단위 테스트는 현재 설정에서 제대로 실행되지만 통합 테스트 실행과 관련된 문제가 있습니다.

통합 테스트는 테스트 클래스 및 구성 파일이 테스트 할 사이드 클래스에있을 때 src 폴더 및 클래스와 동일한 패키지에서 완벽하게 실행됩니다.

하지만 src/test/java에 테스트 클래스를 넣고 src/test/resources에 config 파일을두면 컨텍스트 초기화 문제로 인해 실행되지 않습니다.

모든 SRC, SRC/테스트/자바 및 SRC/시험 ENV 설정에 대해

1 빌드 출력 폴더를 다음에 유의하십시오/자원은 SRC 폴더입니다.

2 설정 경로를 지정하기 위해 classpath * :를 사용하고 있습니다. 그렇지 않으면 spring이 자원 폴더에서 config 파일을 찾지 못합니다.

@ContextConfiguration(locations={"classpath*:applicationContext_getCorpAcctPrefDetailsSP.xml"}) 

3

> (i). in case of @Autowired i get error for depedency saying 
     No unique bean of type GetCorpAccountPreferencesDetailsSP is defined expected at least 1 matching bean 
    also i am using base package scan 

    > (ii). in case of Setter based DI context get initialized and unit test run but all the dependencies injected are null in test class. 

문제 및 솔루션에 대한 이유가 될 수있는 expalin하십시오 테스트 클래스를 기반 DI @Autowired와 setter를 모두 시도했다.

통합 테스트가 테스트중인 클래스와 함께 src 폴더에있는 경우 모든 것이 잘 작동합니다.
테스트 대상 클래스가 테스트와 동일한 소스 폴더에 있지 않을 때 스프링 생성 컨텍스트를 만들 때 문제가되는 differect 소스 폴더 (src 및 test)가 의심됩니다.

감사 nBhati

답변

1

실행시 봄은 원래 소스 코드에 폴더 신경 (또는 알고)하지 않는 모든 문제 즉, 클래스 경로입니다 -. 파일을 컴파일하는 자원 폴더를 넣어되고있다 classpath에. 테스트를 실행할 때 찾을 수없는 XML 파일에 대한 오류가 발생하면 테스트가 실행될 때 해당 XML 파일이 클래스 경로에없는 것이 좋습니다.

+0

안녕하세요, 문제는 클래스 경로에만 있습니다. 1> 나는 이클립스를 사용하여 프로젝트를 만들고 src/test/resources의 리소스를 출력 폴더 (src)에 복사하지 않는다. 어떤 문제라도 해결할 수 있다면 classpath *를 설명 할 수 있습니다. * : Spring이 리소스를 찾는 데 어떤 차이가 있는지 @ContextConfiguration (locations = { "classpath * : applicationContext_getCorpAcctPrefDetailsSP.xml"}) thanks – nBhati

관련 문제