diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KarmaConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KarmaConfig.kt index ea7762658c15f..46b4c4f15ef21 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KarmaConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KarmaConfig.kt @@ -15,6 +15,8 @@ data class KarmaConfig( val client: KarmaClient = KarmaClient(), val browsers: MutableList = mutableListOf(), val customLaunchers: MutableMap = mutableMapOf(), + // https://github.com/karma-runner/karma/pull/3116 + val failOnFailingTestSuite: Boolean = false, val reporters: MutableList = mutableListOf(), val preprocessors: MutableMap> = mutableMapOf(), var coverageReporter: CoverageReporter? = null diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt index 886290d2da7c3..71d7d72e962b5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/karma/KotlinKarma.kt @@ -318,22 +318,15 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF return object : JSServiceMessagesTestExecutionSpec( forkOptions, args, - false, + true, clientSettings ) { lateinit var progressLogger: ProgressLogger - var isLaunchFailed: Boolean = false - override fun wrapExecute(body: () -> Unit) { project.operation("Running and building tests with karma and webpack") { progressLogger = this body() - - if (isLaunchFailed) { - showSuppressedOutput() - throw IllegalStateException("Launch of some browsers was failed") - } } } @@ -351,7 +344,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF val value = text.trimEnd() progressLogger.progress(value) - parseConsole(value) + super.printNonTestOutput(text) } override fun processStackTrace(stackTrace: String): String = @@ -382,16 +375,6 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF return rawSuiteNameOnly.replace(" ", ".") // sample.a.DeepPackageTest.Inner } - - private fun parseConsole(text: String) { - if (KARMA_PROBLEM.matches(text)) { - log.error(text) - isLaunchFailed = true - return - } - - super.printNonTestOutput(text) - } } } } @@ -411,7 +394,5 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF companion object { const val CHROME_BIN = "CHROME_BIN" const val CHROME_CANARY_BIN = "CHROME_CANARY_BIN" - - val KARMA_PROBLEM = "(?m)^.*\\d{2} \\d{2} \\d{4,} \\d{2}:\\d{2}:\\d{2}.\\d{3}:(ERROR|WARN) \\[.*]: (.*)\$".toRegex() } } \ No newline at end of file