Kotest ClassNotFoundException

Dokkabei97·2022년 5월 28일
1

Kotlin

목록 보기
1/1

Kotest

최근에 포트폴리오를 같이 만들었던 형 누나들과 만나서
스터디와 함께 포트폴리오 프로젝트를 싹 다 뜯어고쳐 만들자고 설득해서 프로젝트를 시작했다.

백엔드는 Kotlin + Spring으로 결정하고 나는 최근에 TDD에 빠져서 테스트 코드를 작성하는데
기존의 Junit5를 코틀린에 사용하는게 불편해 사용하기 편한 코틀린 테스트 라이브러리가 없나 찾다 Kotest를 발견했다!

기존의 Junit처럼 @Test를 사용하는 방식부터 다양한 테스트 코드를 지원해 흥미가 생겨 바로 적용했다.

    implementation("io.kotest:kotest-property-jvm:5.3.0")
    testImplementation("io.kotest:kotest-runner-junit5-jvm:5.3.0")
    testImplementation("io.kotest:kotest-assertions-core-jvm:5.3.0")

Kotest Plugin

build.gradle.kts에 적용하고 사용하는데 도저히 실행시키는 버튼이 나오질 않는다.

찾아보니 인텔리제이 기존 kotest를 실행하기 위해서는 인텔리제이 플러그인에서 Kotest를 설치해야 한다.
그렇게 플러그인도 설치하고 실행하니

ClassNotFoundException

ClassNotFoundException 예외가 생긴다 그래서 바로 Kotest github으로 들어가 이슈를 찾은 결과

Spring 2.6.8 버전 이하 들은 kotlin-coroutines 버전이 1.5.2를 지정이 되어 있다,
근데 Kotest 5.0.0 버전 이상들은 1.6.0 이상 버전을 지원하기에 오류가 났던 거였다.

그래서 해결 방법은 Spring을 2.7.0 버전을 사용하거나 2.6.8 버전 이하는

extra["kotlin-coroutines.version"] = "1.6.1" 

build.gradle.kts에 위 코드 한 줄 적어주면 모든게 해결이 된다.

기존 junit처럼 통과된 테스트는 통과 표시가 안 뜨는게 아쉽다


참고한 사이트:

profile
ESTJ 개발자 백엔드와 인프라에 집중하고 있습니다.

0개의 댓글