Skip to content

Kotlin/JS에서 테스트 실행하기

Kotlin 멀티플랫폼 Gradle 플러그인을 사용하면 Gradle 설정을 통해 지정할 수 있는 다양한 테스트 러너를 통해 테스트를 실행할 수 있습니다.

멀티플랫폼 프로젝트를 생성할 때, commonTest에서 단일 의존성을 사용하여 JavaScript 타겟을 포함한 모든 소스 세트에 테스트 의존성을 추가할 수 있습니다.

kotlin
// build.gradle.kts

kotlin {
    sourceSets {
         commonTest.dependencies {
            implementation(kotlin("test")) // 이 설정은 JS에서 테스트 어노테이션과 기능을 사용할 수 있게 합니다.
        }
    }
}
groovy
// build.gradle

kotlin {
    sourceSets {
        commonTest {
            dependencies {
                implementation kotlin("test") // 이 설정은 JS에서 테스트 어노테이션과 기능을 사용할 수 있게 합니다.
            }
        }
    }
}

Gradle 빌드 스크립트의 testTask 블록에서 사용 가능한 설정을 조정하여 Kotlin/JS에서 테스트가 실행되는 방식을 미세 조정할 수 있습니다. 예를 들어, Karma 테스트 러너를 헤드리스(headless) 크롬 인스턴스 및 파이어폭스 인스턴스와 함께 사용하는 방법은 다음과 같습니다.

kotlin
kotlin {
    js {
        browser {
            testTask {
                useKarma {
                    useChromeHeadless()
                    useFirefox()
                }
            }
        }
    }
}

사용 가능한 기능에 대한 자세한 설명은 테스트 태스크 구성에 관한 Kotlin/JS 레퍼런스를 확인하세요.

기본적으로 플러그인에는 브라우저가 포함되어 있지 않다는 점에 유의하세요. 즉, 대상 시스템에서 브라우저를 사용할 수 있는지 직접 확인해야 합니다.

테스트가 제대로 실행되는지 확인하려면 src/jsTest/kotlin/AppTest.kt 파일을 추가하고 다음 내용을 입력하세요.

kotlin
import kotlin.test.Test
import kotlin.test.assertEquals

class AppTest {
    @Test
    fun thingsShouldWork() {
        assertEquals(listOf(1,2,3).reversed(), listOf(3,2,1))
    }

    @Test
    fun thingsShouldBreak() {
        assertEquals(listOf(1,2,3).reversed(), listOf(1,2,3))
    }
}

브라우저에서 테스트를 실행하려면 IntelliJ IDEA를 통해 jsBrowserTest 태스크를 실행하거나, 거터(gutter) 아이콘을 사용하여 전체 또는 개별 테스트를 실행하세요.

Gradle browserTest 태스크

또는 커맨드 라인을 통해 테스트를 실행하려면 Gradle 래퍼(wrapper)를 사용하세요.

bash
./gradlew jsBrowserTest

IntelliJ IDEA에서 테스트를 실행하면 Run 도구 창에 테스트 결과가 표시됩니다. 실패한 테스트를 클릭하면 스택 트레이스(stack trace)를 볼 수 있으며, 더블 클릭하면 해당 테스트 구현으로 이동할 수 있습니다.

IntelliJ IDEA의 테스트 결과

테스트 실행 방식과 관계없이 각 테스트를 실행한 후에는 Gradle에서 생성한 적절한 형식의 테스트 보고서를 build/reports/tests/jsBrowserTest/index.html에서 찾을 수 있습니다. 이 파일을 브라우저에서 열어 테스트 결과의 또 다른 개요를 확인하세요.

Gradle 테스트 요약

위의 코드 스니펫에 표시된 예제 테스트 세트를 사용하는 경우, 하나는 통과하고 하나는 실패하여 총 50%의 테스트 성공률이 나타납니다. 개별 테스트 케이스에 대한 자세한 정보를 보려면 제공된 하이퍼링크를 통해 이동할 수 있습니다.

Gradle 요약의 실패한 테스트 스택 트레이스