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 ea7762658c15f3..46b4c4f15ef21c 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 beb928576b3f26..3cf1a5fa24c509 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 @@ -421,22 +421,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") - } } } @@ -454,7 +447,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF val value = text.trimEnd() progressLogger.progress(value) - parseConsole(value) + super.printNonTestOutput(text) } override fun getSuiteName(message: BaseTestSuiteMessage): String { @@ -482,16 +475,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) - } } } } @@ -511,7 +494,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