Skip to main content

01B. Kotest 프로젝트 설정(Setup)

Less than 1 minuteKotlinTestKotestcrashcoursekotlintestkotest

01B. Kotest 프로젝트 설정(Setup) 관련


Kotest 프로젝트 설정(Setup)

Kotest는 Kotlin으로 작성된 강력한 테스트 프레임워크이다. 프로젝트 설정을 하는 방법에 대해서 설명한다.

Kotest는 Kotlin으로 작성된 강력한 테스트 프레임워크이다. 프로젝트 설정을 하는 방법에 대해서 설명한다.


Kotest 설치와 설정

Kotest를 사용하기 위해서는 먼저 프로젝트에 라이브러리를 추가해야 한다.

의존성 추가

Gradle 프로젝트의 경우, Gradle 빌드 파일(build.gradle.kts)에 다음과 같이 Kotest 의존성을 추가한다:

repositories {
    mavenCentral()
}

dependencies {
    testImplementation("io.kotest:kotest-runner-junit5:${kotestVersion}")
    // 필요한 경우 다른 모듈에 대한 종속성도 추가한다.
}

Maven 프로젝트의 경우에는 빌드 파일(pom.xml)에 다음과 같이 Kotest 의존성을 추가한다:

<dependencies>
    <dependency>
        <groupId>io.kotest</groupId>
        <artifactId>kotest-runner-junit5</artifactId>
        <version>{kotestVersion}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

여기서 ${kotestVersion}을 사용하고자 하는 Kotest 버전을 지정한다.

Note

2024년 2월 기준으로 kotest 최신 버전은 2023년 12월 3일에 출시된 5.8.0이다.

Maven Repository: io.kotest » kotest-runner-junit5

Kotlin Test Framework

kotest-runner-junit5와 kotest-runner-junit5-jvm의 차이점은?

Kotest 테스트를 JUnit 5 테스트 엔진으로 실행하기 위한 기본적인 러너는 jvm이 붙은 버전과 아닌 버전 2가지가 존재한다. 이 두 버전의 차이는 kotest가 어디에서 사용되는지에 따라 달라진다.

  • kotest-runner-junit5:
    • 이 모듈은 Kotest 테스트 엔진과 JUnit 5를 통합하여 Kotest 테스트를 JUnit 5 테스트로 실행할 수 있게 해준다. 이 모듈은 Kotlin Multiplatform 프로젝트에 사용되며, 여러 플랫폼(예: JVM, JS, Native)에서 JUnit 5와 함께 Kotest를 실행할 수 있도록 지원한다.
  • kotest-runner-junit5-jvm:
    • 이 모듈은 JVM에서 Kotlin으로 작성된 코드에 대한 JUnit 5 테스트를 실행하기 위해 사용됩니다. 이 모듈은 JVM 플랫폼에 특화되어 있으며, Kotest 테스트를 JUnit 5로 실행하는 데 필요한 모든 구성을 제공한다.

두 모듈은 각각의 플랫폼에 따라 Kotest 테스트를 JUnit 5 테스트로 실행할 수 있도록 지원한다. 이러한 통합은 Kotest를 다양한 환경에서 사용할 수 있도록 하며, JUnit 5와의 호환성을 보장하여 Kotest를 기존의 테스트 프레임워크와 통합할 수 있도록 한다.

IntelliJ IDEA 에서 Kotest 환경 만들기

IntelliJ IDEA에서 Kotest 구동하려면, Kotest 플러그인을 설치해야 한다.

.[Setting]-[Plugins]에서 가서 kotest를 검색해서 설치한다.

Kotest Plugin
Kotest Plugin

참조

Setup | Kotest

The Kotest test framework is supported on JVM, Javascript and Native.

이찬희 (MarkiiimarK)
Never Stop Learning.