티스토리 뷰
* 개요
- JUnit 잘 되던 Test Class 가
JUnit can not find test class '....' in project '....' 메시지를 보이며 안됨.
* 환경
Eclipse Luna
Windows 7
Spring
Gradle
* 원인분석
- 테스트 클래스가 있는 폴더가 그냥 Folder가 아니라 'Source folder' 여야 함.
- 잘 되다 안됐던건 Gradle 에서 설정이 안 되어있어 관련 설정이 초기화됐기 때문.
* 일반적인 경우는 Source folder 설정
테스트 폴더 > 우클릭 > Build path > Use as source folder 선택하면 됨
* Gradle 사용 하는 경우 'Source folder' 설정
- Source folder 로 지정해도 Gradle로 build 할 때마다 환경이 초기화가 될 수 있음
- Gradle 설정 파일 자체에 테스트 폴더를 'Source folder' 로 지정하는 코드를 넣어야 함.
sourceSets {
main {
java {
srcDirs = ["src/main/java"]
}
}
test {
java {
srcDirs = ["src/test"]
}
}
}
- 참고 : http://stackoverflow.com/questions/2551463/can-gradle-handle-a-build-directory-stucture-that-does-not-conform-default-conve
- 여러개의 폴더를 설정하려면 ["폴더1", "폴더2", ...]
* 참고 : Deployment Assembly 정보 Gradle에서 추가하는 법
eclipse{
wtp{
...
component {
resource deployPath: '배포될경로', sourcePath: '소스경로'
}
}
}
* spring-test 의 경우 Gradle 설정
- spring-test 사용하는 경우 스프링 설정 파일을 Deployment Assembly 에 추가하기 위해 다음과 같이 하면 된다고 생각했지만,
resource deployPath: 'WEB-INF/classes', sourcePath: 'src/main/webapp/WEB-INF/spring'
- 웹프로젝트는 기본적으로 WEB-INF 가 배포되므로 그 이하에 있는 /spring을 위와 같이 별도의 정상적인 배포가 되지 않음 ( 별다른 오류도 없이 404 발생 )
- 따라서 Assembly Deployment 로 지정하지 않고 Source folder 로 지정해놓고 사용.
sourceSets {
main {
java {
srcDirs = ["src/main/java"]
}
}
test {
java {
srcDirs = ["src/test", "src/main/webapp/WEB-INF/spring"]
}
}
}