[java] Gradle로 JUnit 테스트를 실행하는 방법은 무엇입니까?
현재 다음 build.gradle 파일이 있습니다.
apply plugin: 'java'
sourceSets {
main {
java {
srcDir 'src/model'
}
}
}
dependencies {
compile files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar')
runtime fileTree(dir: 'libs', include: '*.jar')
}
이 build.gradle 파일은 여기 내 저장 소용 입니다. 내 모든 주요 파일은 src / model /에 있고 해당 테스트는 test / model에 있습니다.
JUnit 4 종속성을 올바르게 추가 한 다음 테스트 / 모델 폴더에서 해당 테스트를 실행하려면 어떻게해야 합니까?
답변
junit 4 종속성을 올바르게 추가하려면 어떻게해야합니까?
표준 Maven (또는 이와 동등한) 저장소에 대해 해결한다고 가정합니다.
dependencies {
...
testCompile "junit:junit:4.11" // Or whatever version
}
테스트 / 모델 폴더에서 테스트를 실행 하시겠습니까?
동일한 방식으로 테스트 소스 세트를 정의합니다.
sourceSets {
...
test {
java {
srcDirs = ["test/model"] // Note @Peter's comment below
}
}
}
그런 다음 다음과 같이 테스트를 호출합니다.
./gradlew test
답변
기본 gradle 패키지 구조로 프로젝트를 설정하는 경우, 즉 :
src/main/java
src/main/resources
src/test/java
src/test/resources
그러면 테스트를 실행하기 위해 sourceSets를 수정할 필요가 없습니다. Gradle은 테스트 클래스와 리소스가 src / test에 있음을 알아냅니다. 그런 다음 Oliver가 위에서 말한대로 실행할 수 있습니다. 참고할 사항 : 속성 파일을 설정하고 gradle과 IDE를 모두 사용하여 테스트 클래스를 실행할 때주의하십시오. 나는 Eclipse를 사용하고 JUnit을 실행할 때 Eclipse는 하나의 클래스 경로 (bin 디렉토리)를 선택하는 반면 gradle은 다른 클래스 경로 (빌드 디렉토리)를 선택합니다. 리소스 파일을 편집하고 테스트 런타임에 변경 사항이 반영되지 않으면 혼동이 발생할 수 있습니다.
답변
Spring Initializr로 프로젝트를 생성했다면 , 모든 것이 올바르게 구성되어야하고 실행해야하는 모든 것이 실행됩니다.
./gradlew clean test --info
--info
테스트 출력을 보지 않으려면 드롭 하십시오.- 하락
clean
마지막 변경 이후 이미 통과 한 테스트를 다시 실행하지 않으려면 하십시오.
에 필요한 종속성 build.gradle
Spring Boot에서 테스트하는 …
dependencies {
compile('org.springframework.boot:spring-boot-starter')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
어떤 이유로 테스트 실행기는이를 알려주지 않지만 build/reports/tests/test/index.html
.
답변
testCompile 은 더 이상 사용되지 않습니다. Gradle 7 호환 :
dependencies {
...
testImplementation 'junit:junit:4.13'
}
기본 폴더 구조 (src / test / java / …)를 사용하는 경우 테스트 섹션은 간단합니다.
test {
useJUnit()
}
드디어:
gradlew clean test
Alos 참조 : https://docs.gradle.org/current/userguide/java_testing.html