공부/Java

Gradle 프로젝트에서 junit5 실행하기

2020. 7. 18. 19:45

java로 graddle프로젝트를 생성하여 개발하려고 하였다.

junit5로 테스트하려고 하였으나 테스트가 되지 않아서 여기저기 찾아보고 삽질하여 답을 찾았다.

나와 같은 사람들이 이 글을 보고 빠르게 해결하기를 바라며 공유하고자 한다.

 

1. intellij에서 java gradle 프로젝트를 생성한다.

2. gradle에 junit5 추가

 

junit5를 이용하여 코드를 작성하기 위해선 junit-jupiter-api가 필요하다

그리고 테스트 실행하기 위해서 junit-jupiter-engine이 필요하다.

 

maven repository에서 junit을 검색하였다. 아래와 같이 사용하라고 나온다.

testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.6.2'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.6.2'

3. 오류들 발견 build.gradle 파일 수정

그러나 위와 같이 작성하고 테스트를 실행하면 아래와 같은 오류를 발견하게 될 것이다.

 

deprecated gradle features were used in this build making it incompatible with gradle 7.0

 

이 뜻은 "testCompile"이 앞으로는 종료될 예정이라는 것 같다.

그래서 아래와 같이 변경해 주어야 한다.

testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.6.2'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.6.2'

 

그리고 실행해주면 아래와 같은 오류 문구가 나오게 될 것이다.

* What went wrong:
Execution failed for task ':test'.
> No tests found for given includes: [com.example.example.exampleTestClass.test](filter.includeTestsMatching)

이것을 해결하기 위한 방법은 인텔리제이 기준 두 가지가 있는데 먼저 인텔리제이의 빌드 환경을 gradle에서 intellij로 변경하는 것이다. 하지만 이 방법은 여러 명이서 작업하게 되면 모두 ide설정을 이렇게 변경해야 한다는 단점이 있기 때문에 좋은 방법은 아닐 것 같다.

두 번째 방법은 build.gradle 파일에 다음과 같이 추가하는 것이다.

test {
    useJUnitPlatform()
}

 

이제 gradle 업데이트 후 실행하면 정상적으로 테스트가 될 것이다.

물론 테스트 클래스에 테스트 함수는 한 개 이상 만들어 놓아야 한다.

 

 

 

 

반응형