From ee218e9855bb9e62b89d8d2407e1785205b43f1b Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 14 Apr 2020 17:06:41 +0300 Subject: [PATCH] [Gradle, JS] Less verbosity for karma parsing #KT-38109 fixed --- .../targets/js/testing/karma/KotlinKarma.kt | 21 ++++++++----------- .../kotlin-test-js-runner/build.gradle.kts | 2 ++ .../src/teamcity-format.d.ts | 2 +- .../src/teamcity-format.js | 1 - .../kotlin-test-js-runner/tc-log-appender.js | 13 ++++++++++-- 5 files changed, 23 insertions(+), 16 deletions(-) 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 3acb5780e8a..28474310beb 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 @@ -82,7 +82,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : config.loggers = [ { type: 'kotlin-test-js-runner/tc-log-appender.js', - layout: { type: 'pattern', pattern: '%[%d{DATE}:%p [%c]: %]%m' } + layout: { type: 'pattern', pattern: '%[[%c]: %]%m' } } ] """.trimIndent() @@ -438,24 +438,21 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : private fun parseConsole(text: String, type: String?) { - val result = KARMA_MESSAGE.matchEntire(text) + var actualText = text - if (result != null) { + val launcherMessage = KARMA_LAUNCHER_MESSAGE.matchEntire(text) - val (logLevel, message) = result.destructured - - when (logLevel.toLowerCase()) { + if (launcherMessage != null) { + val (message) = launcherMessage.destructured + actualText = message + when (type?.toLowerCase()) { WARN, ERROR -> { processFailedBrowsers(text) } } - - processLogMessage(message, logLevel) - - return } - type?.let { processLogMessage(text, it) } + type?.let { processLogMessage(actualText, it) } } private fun processLogMessage( @@ -559,5 +556,5 @@ private const val INFO = "info" private const val DEBUG = "debug" private const val LOG = "log" -private val KARMA_MESSAGE = "^.*\\d{2} \\d{2} \\d{4,} \\d{2}:\\d{2}:\\d{2}.\\d{3}:(ERROR|WARN|INFO|DEBUG|LOG) \\[.*]: ([\\w\\W]*)\$" +private val KARMA_LAUNCHER_MESSAGE = "^.*\\[launcher]: ([\\w\\W]*)\$" .toRegex() \ No newline at end of file diff --git a/libraries/tools/kotlin-test-js-runner/build.gradle.kts b/libraries/tools/kotlin-test-js-runner/build.gradle.kts index a7712006de7..db36529d9cf 100644 --- a/libraries/tools/kotlin-test-js-runner/build.gradle.kts +++ b/libraries/tools/kotlin-test-js-runner/build.gradle.kts @@ -57,6 +57,8 @@ tasks { "karma-debug-runner.js", "karma-debug-framework.js", "mocha-kotlin-reporter.js", + "tc-log-appender.js", + "tc-log-error-webpack.js", "package.json", "rollup.config.js", "tsconfig.json", diff --git a/libraries/tools/kotlin-test-js-runner/src/teamcity-format.d.ts b/libraries/tools/kotlin-test-js-runner/src/teamcity-format.d.ts index b18922ca4bd..fa3d4de1cfc 100644 --- a/libraries/tools/kotlin-test-js-runner/src/teamcity-format.d.ts +++ b/libraries/tools/kotlin-test-js-runner/src/teamcity-format.d.ts @@ -14,7 +14,7 @@ export const TEST_END: string export const TEST_END_NO_DURATION: string export const BLOCK_OPENED: string export const BLOCK_CLOSED: string -export const MESSAGE: string +export const TYPED_MESSAGE: string export function tcEscape(str: string): string diff --git a/libraries/tools/kotlin-test-js-runner/src/teamcity-format.js b/libraries/tools/kotlin-test-js-runner/src/teamcity-format.js index 8017062c203..5f16892822c 100644 --- a/libraries/tools/kotlin-test-js-runner/src/teamcity-format.js +++ b/libraries/tools/kotlin-test-js-runner/src/teamcity-format.js @@ -16,7 +16,6 @@ export const TEST_END_NO_DURATION = `##teamcity[testFinished name='%s' flowId='% export const BLOCK_OPENED = `##teamcity[blockOpened name='%s' flowId='%s']` export const BLOCK_CLOSED = `##teamcity[blockClosed name='%s' flowId='%s']` -export const MESSAGE = `##teamcity[message text='%s']` export const TYPED_MESSAGE = `##teamcity[message text='%s' type='%s']` /** diff --git a/libraries/tools/kotlin-test-js-runner/tc-log-appender.js b/libraries/tools/kotlin-test-js-runner/tc-log-appender.js index 8e8422350d9..57cf2c9bea9 100644 --- a/libraries/tools/kotlin-test-js-runner/tc-log-appender.js +++ b/libraries/tools/kotlin-test-js-runner/tc-log-appender.js @@ -5,13 +5,22 @@ 'use strict'; -import {formatMessage, MESSAGE} from "./src/teamcity-format" +import {formatMessage, TYPED_MESSAGE} from "./src/teamcity-format" const consoleLog = console.log.bind(console); function consoleAppender(layout, timezoneOffset) { return (loggingEvent) => { - consoleLog(formatMessage(MESSAGE, layout(loggingEvent, timezoneOffset))); + consoleLog( + formatMessage( + TYPED_MESSAGE, + layout( + loggingEvent, + timezoneOffset + ), + loggingEvent.level.toString() + ) + ); }; }