diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/JSServiceMessages.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/JSServiceMessages.kt new file mode 100644 index 00000000000..a6d06bf5bf8 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/JSServiceMessages.kt @@ -0,0 +1,51 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.targets.js.testing + +import org.gradle.api.internal.tasks.testing.TestResultProcessor +import org.gradle.process.ProcessForkOptions +import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient +import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings +import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec +import org.slf4j.Logger + +internal open class JSServiceMessagesTestExecutionSpec( + forkOptions: ProcessForkOptions, + args: List, + checkExitCode: Boolean, + clientSettings: TCServiceMessagesClientSettings +) : TCServiceMessagesTestExecutionSpec( + forkOptions, + args, + checkExitCode, + clientSettings +) { + protected val suppressedOutput = StringBuilder() + + override fun showSuppressedOutput() { + println(suppressedOutput) + } + + override fun createClient(testResultProcessor: TestResultProcessor, log: Logger): TCServiceMessagesClient { + return JSServiceMessagesClient( + results = testResultProcessor, + settings = clientSettings, + log = log, + suppressedOutput = suppressedOutput + ) + } +} + +internal open class JSServiceMessagesClient( + results: TestResultProcessor, + settings: TCServiceMessagesClientSettings, + log: Logger, + private val suppressedOutput: StringBuilder +) : TCServiceMessagesClient(results, settings, log) { + override fun printNonTestOutput(text: String) { + suppressedOutput.appendln(text) + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/JSServiceMessagesClient.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/JSServiceMessagesClient.kt deleted file mode 100644 index 9355fd01eea..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/JSServiceMessagesClient.kt +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.gradle.targets.js.testing - -import org.gradle.api.internal.tasks.testing.TestResultProcessor -import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient -import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings -import org.slf4j.Logger - -internal class JSServiceMessagesClient( - results: TestResultProcessor, - settings: TCServiceMessagesClientSettings, - log: Logger -) : TCServiceMessagesClient(results, settings, log) { - override fun printNonTestOutput(text: String) { - // do nothing - } -} \ No newline at end of file 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 4e4ae178ec1..46b5945cffa 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 @@ -12,7 +12,6 @@ import org.gradle.api.internal.tasks.testing.TestResultProcessor import org.gradle.internal.logging.progress.ProgressLogger import org.gradle.process.ProcessForkOptions import org.jetbrains.kotlin.gradle.internal.operation -import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation @@ -22,9 +21,7 @@ import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject -import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest -import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework -import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinTestRunnerCliArgs +import org.jetbrains.kotlin.gradle.targets.js.testing.* import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig import org.jetbrains.kotlin.gradle.testing.internal.reportsDir import org.slf4j.Logger @@ -418,14 +415,13 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF nodeModules.map { npmProject.require(it) } + listOf("start", karmaConfJs.absolutePath, "--debug") - return object : TCServiceMessagesTestExecutionSpec( + return object : JSServiceMessagesTestExecutionSpec( forkOptions, args, false, clientSettings ) { lateinit var progressLogger: ProgressLogger - val suppressedOutput = StringBuilder() var isLaunchFailed: Boolean = false @@ -441,12 +437,13 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF } } - override fun showSuppressedOutput() { - println(suppressedOutput) - } - override fun createClient(testResultProcessor: TestResultProcessor, log: Logger) = - object : TCServiceMessagesClient(testResultProcessor, clientSettings, log) { + object : JSServiceMessagesClient( + testResultProcessor, + clientSettings, + log, + suppressedOutput + ) { val baseTestNameSuffix get() = settings.testNameSuffix override var testNameSuffix: String? = baseTestNameSuffix @@ -490,7 +487,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF return } - suppressedOutput.appendln(text) + super.printNonTestOutput(text) } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/nodejs/KotlinNodeJsTestRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/nodejs/KotlinNodeJsTestRunner.kt index 2c905df70d6..1a4f45865cc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/nodejs/KotlinNodeJsTestRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/nodejs/KotlinNodeJsTestRunner.kt @@ -6,9 +6,7 @@ package org.jetbrains.kotlin.gradle.targets.js.testing.nodejs import org.gradle.api.Project -import org.gradle.api.internal.tasks.testing.TestResultProcessor import org.gradle.process.ProcessForkOptions -import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation @@ -16,12 +14,11 @@ import org.jetbrains.kotlin.gradle.targets.js.KotlinGradleNpmPackage import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject -import org.jetbrains.kotlin.gradle.targets.js.testing.JSServiceMessagesClient +import org.jetbrains.kotlin.gradle.targets.js.testing.JSServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinTestRunnerCliArgs import org.jetbrains.kotlin.gradle.testing.IgnoredTestSuites -import org.slf4j.Logger class KotlinNodeJsTestRunner(override val compilation: KotlinJsCompilation) : KotlinJsTestFramework { val project: Project @@ -67,19 +64,11 @@ class KotlinNodeJsTestRunner(override val compilation: KotlinJsCompilation) : Ko } + cliArgs.toList() - return object : TCServiceMessagesTestExecutionSpec( + return JSServiceMessagesTestExecutionSpec( forkOptions, args, true, clientSettings - ) { - override fun createClient(testResultProcessor: TestResultProcessor, log: Logger): TCServiceMessagesClient { - return JSServiceMessagesClient( - testResultProcessor, - clientSettings, - log - ) - } - } + ) } } \ No newline at end of file