kotlin junit5 gradle 설정 (Intellij IDEA)

gosgjung·2020년 9월 30일
0

코틀린 시작하기

목록 보기
1/1
post-thumbnail

kotlin junit5 gradle 설정 (Intellij IDEA)

프로젝트 생성

메뉴에서 File > New > Project 를 선택한다.
이후에 나타나는 화면에서 아래와 같이 Gradle 을 선택 후 Additional Libraries and Frameworks 에 대한 항목으로

  • Kotlin DSL build script
  • Java
  • Groovy
  • Kotlin/JVM

을 선택해준다.

꼭 이렇게 해주어야 하는지는 나도 잘 모른다. gradle 기반으로 프로젝트를 생성할 때 이렇게 하면 될것 같아서 이것 저것 선택해서 하다보니 ..;;ㅋㅋ
(maven, gradle 기반의 프로젝트를 진행해본 경험이 있다면 kotlin 에서 gradle 설정할 때도 거의 비슷한 과정으로 생성하게 된다는것을 깨달을 수 있다.)

artifactId, groupId 등을 입력해주고 프로젝트 생성을 위한 절차를 마친다.

프로젝트 생성후 모습

test 디렉터리까지 잘 잡혀있는 것을 확인 가능하다 :)

Gradle 설정

dependencies 항목을 아래와 같이 수정해준다.

dependencies

dependencies {
    implementation("org.codehaus.groovy:groovy-all:2.3.11")
    implementation(kotlin("stdlib-jdk8"))
    testImplementation("org.jetbrains.kotlin", "kotlin-test-junit5", "1.3.72")
}

인텔리제이 설정

참고자료 - Stack Over flow

Settings > Build,Execution,Deployment > Build Tools > Gradle > Runner > "Run tests using:"

아직 로컬 개발환경 전역으로 kotlin을 설치하지 않았다. 이런 이유로 intellij 내부의 kotlin 엔진을 사용하는것으로 설정했다.

build.gradle 설정

참고자료

위의 자료를 참고했다. 나의 경우는 tasks 내에 test{...}를 추가해주는 방식으로 해결했다.

// ...
tasks {
	// ...
    test{
        useJUnitPlatform()
    }
}

build.gradle.kts 전체 소스

plugins {
    groovy
    java
    kotlin("jvm") version "1.3.72"
}

group = "io.study"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.codehaus.groovy:groovy-all:2.3.11")
    implementation(kotlin("stdlib-jdk8"))
    testImplementation("org.jetbrains.kotlin", "kotlin-test-junit5", "1.3.72")
}

configure<JavaPluginConvention> {
    sourceCompatibility = JavaVersion.VERSION_1_8
}
tasks {
    compileKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
    compileTestKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
    test{
        useJUnitPlatform()
    }
}

junit test 코드 작성해보기

kotlin-junit5 의존성 추가 (build.gradle.kts)

dependencies {
	// ...
    testImplementation("org.jetbrains.kotlin", "kotlin-test-junit5", "1.3.72")
}

예제 코드(Product.kt)

data class Product(
    val name: String,
    val price: Double,
    val onSale: Boolean = false
)

프로젝트 디렉터리 구조를 확인하기 위해 스샷도 함께 첨부했다~

junit test 추가 (GUI 활용)

GUI 메뉴를 활용해서 junit5 테스트 코드를 작성해보자. (사실 직접 클래스를 생성해서 수동으로 테스트 클래스를 생성하는게 편하긴 하다.)

  • 아래 그림 처럼 클래스 명 위에 커서를 대고 Ctrl + Enter 를 누르면 (Cmd + Enter가 아니다. 혼동금지)
  • Generate 팝업이 나타난다.
  • 여기서 Test... 를 클릭

JUnit5 library not found in the module 문구가 뜨는데, 방금 전에 kotlin-junit5 라이브러리를 build.gradle.kts에 추가해주었기 때문에 이 부분은 무시해도 된다.
별다른 설정 없이 OK 버튼을 클릭하자.

코틀린 디렉터리 (src/test/kotlin)을 선택하고 OK 클릭

테스트 코드 작성

테스트 코드 (ProductTest.kt)

import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Test

internal class ProductTest {

    @Test
    @DisplayName("hello~!!")
    internal fun testSomething(){
        println("hello~!!")
    }
}

테스트의 실행은 아래와 같이 화면에서 초록색 화살표 버튼을 클릭하면 실행된다.

테스트가 완료된 모습

profile
행복해지고 싶은 개발자

0개의 댓글