Gradle로 JUnit 테스트를 실행하는 방법은 무엇입니까?


98

현재 다음 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 종속성을 올바르게 추가 한 다음 테스트 / 모델 폴더에서 해당 테스트를 실행하려면 어떻게해야 합니까?

답변:


106

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

편집 : JUnit 5를 대신 사용하는 경우 완료해야 할 단계가 더 많으므로이 자습서를 따라야 합니다 .


8
srcDirs = ["test/model"]기본 테스트 소스 디렉토리를 제거하고 srcDir "test/model"다른 디렉토리를 추가 하기 때문에 좀 더 정확 합니다. main소스 세트 와 동일합니다 .
Peter Niederwieser

49

기본 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은 다른 클래스 경로 (빌드 디렉토리)를 선택합니다. 리소스 파일을 편집하고 테스트 런타임에 변경 사항이 반영되지 않으면 혼동이 발생할 수 있습니다.


2
Eclipse 빌드 파일을 Gradle과 동일한 디렉토리로 지정하려면 (몇 가지 실망스러운 오류를 방지 할 수 있음) : 프로젝트-> 속성-> Java 빌드 경로-> 기본 출력 폴더 : "bin"을 "build"로 바꿉니다. 그러나 ... 내 경험상 이것은 예기치 않게 자주 기본 "빈"으로 "슬립하는"당황스러운 습관이있는 것 같습니다. Eclipse가 기본적으로 "빌드"를 사용하도록하는 방법이 있는지 알고 있으면 좋을 것입니다.
마이크 설치류

2
@ 마이크 - 설치류까지 내가 그것을 명시 적으로 일식과 Gradle을합니다 (예를 들어, 동일한 빌드 경로를 공유 할 수 낙담 알고만큼 discuss.gradle.org/t/... )
mtraut

좋아, 나는 정정 당했다! ... 그리고 동일한 디렉토리로 컴파일하여 얻을 수있는 것이 없다고 생각합니다. 대부분의 경우 이클립스 빌더 기능은 단순한 유효성 검사 도구가됩니다. "이런, x, y 및 z 때문에 컴파일되지 않습니다."
마이크 설치류

1
@DivDiff 내 src 폴더 구조는 위에서 언급 한 것과 같은 방식으로 설정되지만 그래도 gradle 테스트를 수행 할 때 아무 작업도 수행하지 않습니다. 내 테스트를 전혀 실행하지 않습니다. 어떤 생각?
Gaurav 2011

@Gaurav, 오프라인에서 이야기 할 수 있도록 채팅방에 초대했습니다.
DivDiff 2016

15

Spring Initializr로 프로젝트를 생성했다면 , 모든 것이 올바르게 구성되어야하고 실행해야하는 모든 것이 실행됩니다.

./gradlew clean test --info
  • --info테스트 출력을 보지 않으려면 드롭 하십시오.
  • 하락 clean마지막 변경 이후 이미 통과 한 테스트를 다시 실행하지 않으려면 하십시오.

에 필요한 종속성 build.gradleSpring Boot에서 테스트하는 ...

dependencies {
    compile('org.springframework.boot:spring-boot-starter')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

어떤 이유로 테스트 실행기는이를 알려주지 않지만 build/reports/tests/test/index.html.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.