Spec-Zone.ru › Kotlin 1.9

Запуск тестов в Kotlin/JS

Плагин Kotlin Multiplatform Gradle позволяет запускать тесты с помощью различных исполнителей тестов, которые можно указать в конфигурации Gradle.

При создании проекта с поддержкой нескольких платформ мастер-помощник проекта автоматически добавляет зависимости для тестов ко всех наборам исходных данных. Если вы создали проект без этого, вы можете вручную добавить зависимости, чтобы аннотации и функциональность тестов были доступны для целевой платформы JavaScript:

// build.gradle.kts

kotlin {
    sourceSets {
        val commonTest by getting {
            dependencies {
                implementation(kotlin("test")) // This brings all the platform dependencies automatically
            }
        }
    }
}
// build.gradle

kotlin {
    sourceSets {
        commonTest {
            dependencies {
                implementation kotlin("test") // This brings all the platform dependencies automatically
            }
        }
    }
}

Вы можете настроить выполнение тестов в Kotlin/JS, скорректировав параметры в блоке testTask в скрипте сборки Gradle. Например, использование исполнителя тестов Karma вместе с безголовым экземпляром Chrome и экземпляром Firefox выглядит так:

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

Для получения подробного описания доступной функциональности ознакомьтесь со справкой Kotlin/JS по настройке задачи тестов.

Обратите внимание, что по умолчанию плагин не включает браузеры. Это означает, что вам нужно убедиться, что они доступны на целевой системе.

Чтобы проверить, что тесты выполняются правильно, добавьте файл src/jsTest/kotlin/AppTest.kt и заполните его этим содержимым:

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))
    }
}

Для запуска тестов в браузере выполните задачу jsBrowserTest через IntelliJ IDEA или используйте значки на полях для выполнения всех или отдельных тестов:

Gradle browserTest task

В качестве альтернативы, если вы хотите запустить тесты через командную строку, используйте оболочку Gradle:

./gradlew jsBrowserTest

После запуска тестов из IntelliJ IDEA окно инструмента Запуск отобразит результаты тестов. Вы можете щелкнуть по не пройденным тестам, чтобы увидеть их стек-трейс, и перейти к соответствующей реализации теста двойным щелчком.

Test results in IntelliJ IDEA

После каждого запуска тестов, независимо от того, как вы их запустили, вы можете найти отчёт о результатах тестов, отформатированный Gradle, в build/reports/tests/jsBrowserTest/index.html. Откройте этот файл в браузере, чтобы увидеть ещё один обзор результатов тестов:

Gradle test summary

Если вы используете набор примеров тестов, показанных в фрагменте кода выше, один тест проходит, а один тест не проходит, что даёт итоговый результат в 50% успешно выполненных тестов. Чтобы получить больше информации об отдельных тестовых случаях, вы можете перейти по предоставленным гиперссылкам:

Stacktrace of failed test in the Gradle summary
Последнее изменение: 19 июня 2023
Отладка кода Kotlin/JS Исключение неиспользуемого кода в Kotlin/JS

© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/js-running-tests.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API