From 8e086d14f34dc83d55e71b9be5bdd7348d5c5168 Mon Sep 17 00:00:00 2001 From: Aydar Mukhametzyanov Date: Thu, 15 Jan 2026 18:02:58 +0100 Subject: [PATCH] [platform UI][se] IJPL-198632 Tests for duplicated actions: report each action as a separate test GitOrigin-RevId: cb0fc813721d87740cf2f35c95be3b5d9a67c9b5 --- .../teamCity/src/teamCityPrinter.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/platform/testFramework/teamCity/src/teamCityPrinter.kt b/platform/testFramework/teamCity/src/teamCityPrinter.kt index 7bf5ef01d19d..d6ffdbdbba82 100644 --- a/platform/testFramework/teamCity/src/teamCityPrinter.kt +++ b/platform/testFramework/teamCity/src/teamCityPrinter.kt @@ -7,15 +7,24 @@ import java.util.* // Functions in this file only handle TeamCity message formatting. fun PrintStream.reportTestFailure(testName: String, message: String, details: String) { + reportTest(testName, message, details, true) +} + +fun PrintStream.reportTestSuccess(testName: String, message: String = "", details: String = "") { + reportTest(testName, message, details, false) +} + +private fun PrintStream.reportTest(testName: String, message: String, details: String, isFailure: Boolean) { val flowId = UUID.randomUUID().toString() val escapedTestName = testName.escapeStringForTeamCity() val escapedMessage = message.escapeStringForTeamCity() val escapedDetails = details.escapeStringForTeamCity() - println(""" - ##teamcity[testStarted flowId='$flowId' name='$escapedTestName' nodeId='$escapedTestName' parentNodeId='0'] - ##teamcity[testFailed flowId='$flowId' name='$escapedTestName' nodeId='$escapedTestName' parentNodeId='0' message='$escapedMessage' details='$escapedDetails'] - ##teamcity[testFinished flowId='$flowId' name='$escapedTestName' nodeId='$escapedTestName' parentNodeId='0'] - """.trimIndent()) + + println(buildString { + appendLine("##teamcity[testStarted flowId='$flowId' name='$escapedTestName' nodeId='$escapedTestName' parentNodeId='0']") + if (isFailure) appendLine("##teamcity[testFailed flowId='$flowId' name='$escapedTestName' nodeId='$escapedTestName' parentNodeId='0' message='$escapedMessage' details='$escapedDetails']") + appendLine("##teamcity[testFinished flowId='$flowId' name='$escapedTestName' nodeId='$escapedTestName' parentNodeId='0']") + }) } fun String.escapeStringForTeamCity(): String {