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 업데이트 후 실행하면 정상적으로 테스트가 될 것이다.
물론 테스트 클래스에 테스트 함수는 한 개 이상 만들어 놓아야 한다.
'공부 > Java' 카테고리의 다른 글
인텔리제이(IntelliJ)에서 디버깅 시 중단점(Break Point) 동작하지 않는 경우 (0) | 2020.12.26 |
---|---|
Java가 Call by reference가 아니라 Call by Value 인 이유 (0) | 2020.08.20 |
내가 만든 Java gradle 라이브러리를 maven repository 에 등록하기 회고 (0) | 2020.07.27 |