diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestComparisionFailedState.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestComparisionFailedState.java index bf4754a4970a..7b30bf33436b 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestComparisionFailedState.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestComparisionFailedState.java @@ -18,7 +18,6 @@ package com.intellij.execution.testframework.sm.runner.states; import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.execution.testframework.CompositePrintable; import com.intellij.execution.testframework.Printer; -import com.intellij.execution.testframework.sm.runner.ui.TestsPresentationUtil; import com.intellij.execution.testframework.stacktrace.DiffHyperlink; import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.openapi.util.text.StringUtil; @@ -68,14 +67,14 @@ public class TestComparisionFailedState extends TestFailedState { printer.mark(); // Error msg - TestsPresentationUtil.printWithAnsiColoring(printer, myErrorMsgPresentation, ProcessOutputTypes.STDERR); + printer.printWithAnsiColoring(myErrorMsgPresentation, ProcessOutputTypes.STDERR); // Diff link myHyperlink.printOn(printer); // Stacktrace printer.print(CompositePrintable.NEW_LINE, ConsoleViewContentType.ERROR_OUTPUT); - TestsPresentationUtil.printWithAnsiColoring(printer, myStacktracePresentation, ProcessOutputTypes.STDERR); + printer.printWithAnsiColoring(myStacktracePresentation, ProcessOutputTypes.STDERR); printer.print(CompositePrintable.NEW_LINE, ConsoleViewContentType.ERROR_OUTPUT); } diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestFailedState.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestFailedState.java index 16e703c72d46..a8ba9a6d884c 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestFailedState.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/states/TestFailedState.java @@ -18,7 +18,6 @@ package com.intellij.execution.testframework.sm.runner.states; import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.execution.testframework.CompositePrintable; import com.intellij.execution.testframework.Printer; -import com.intellij.execution.testframework.sm.runner.ui.TestsPresentationUtil; import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.containers.ContainerUtil; @@ -79,7 +78,7 @@ public class TestFailedState extends AbstractState { printer.mark(); addMark = false; } - TestsPresentationUtil.printWithAnsiColoring(printer, errorText, ProcessOutputTypes.STDERR); + printer.printWithAnsiColoring(errorText, ProcessOutputTypes.STDERR); } } } diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java index c64e6fae9ef3..46f03703154d 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/TestsPresentationUtil.java @@ -472,18 +472,4 @@ public class TestsPresentationUtil { break; } } - - public static void printWithAnsiColoring(@NotNull final Printer printer, @NotNull String text, @NotNull final Key processOutputType) { - AnsiEscapeDecoder decoder = new AnsiEscapeDecoder(); - decoder.escapeText(text, ProcessOutputTypes.STDOUT, new AnsiEscapeDecoder.ColoredTextAcceptor() { - @Override - public void coloredTextAvailable(String text, Key attributes) { - ConsoleViewContentType contentType = ConsoleViewContentType.getConsoleViewType(attributes); - if (contentType == null || contentType == ConsoleViewContentType.NORMAL_OUTPUT) { - contentType = ConsoleViewContentType.getConsoleViewType(processOutputType); - } - printer.print(text, contentType); - } - }); - } } diff --git a/platform/testRunner/src/com/intellij/execution/testframework/CompositePrintable.java b/platform/testRunner/src/com/intellij/execution/testframework/CompositePrintable.java index fc0760797667..9bf62c47e999 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/CompositePrintable.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/CompositePrintable.java @@ -356,7 +356,7 @@ public class CompositePrintable implements Printable, Disposable { for (ConsoleViewContentType contentType : ConsoleViewContentType.OUTPUT_TYPES) { final String prefix = contentType.toString(); if (line.startsWith(prefix)) { - printer.print(line.substring(prefix.length()), contentType); + printer.printWithAnsiColoring(line.substring(prefix.length()), contentType); myLastSelected = contentType; printed = true; break; @@ -368,7 +368,7 @@ public class CompositePrintable implements Printable, Disposable { .printOn(printer); } else { - printer.print(line, myLastSelected != null ? myLastSelected : ConsoleViewContentType.NORMAL_OUTPUT); + printer.printWithAnsiColoring(line, myLastSelected != null ? myLastSelected : ConsoleViewContentType.NORMAL_OUTPUT); } } lineNum++; diff --git a/platform/testRunner/src/com/intellij/execution/testframework/Printer.java b/platform/testRunner/src/com/intellij/execution/testframework/Printer.java index e147c63e3280..84810739f127 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/Printer.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/Printer.java @@ -16,7 +16,10 @@ package com.intellij.execution.testframework; import com.intellij.execution.filters.HyperlinkInfo; +import com.intellij.execution.process.AnsiEscapeDecoder; +import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.execution.ui.ConsoleViewContentType; +import com.intellij.openapi.util.Key; import org.jetbrains.annotations.NotNull; public interface Printer { @@ -24,4 +27,32 @@ public interface Printer { void onNewAvailable(@NotNull Printable printable); void printHyperlink(String text, HyperlinkInfo info); void mark(); + + default void printWithAnsiColoring(@NotNull String text, @NotNull Key processOutputType) { + AnsiEscapeDecoder decoder = new AnsiEscapeDecoder(); + decoder.escapeText(text, ProcessOutputTypes.STDOUT, new AnsiEscapeDecoder.ColoredTextAcceptor() { + @Override + public void coloredTextAvailable(String text, Key attributes) { + ConsoleViewContentType contentType = ConsoleViewContentType.getConsoleViewType(attributes); + if (contentType == null || contentType == ConsoleViewContentType.NORMAL_OUTPUT) { + contentType = ConsoleViewContentType.getConsoleViewType(processOutputType); + } + print(text, contentType); + } + }); + } + + default void printWithAnsiColoring(@NotNull String text, @NotNull ConsoleViewContentType contentType) { + AnsiEscapeDecoder decoder = new AnsiEscapeDecoder(); + decoder.escapeText(text, ProcessOutputTypes.STDOUT, new AnsiEscapeDecoder.ColoredTextAcceptor() { + @Override + public void coloredTextAvailable(String text, Key attributes) { + ConsoleViewContentType viewContentType = ConsoleViewContentType.getConsoleViewType(attributes); + if (viewContentType == null) { + viewContentType = contentType; + } + print(text, viewContentType); + } + }); + } } diff --git a/platform/testRunner/src/com/intellij/execution/testframework/export/TestResultsXmlFormatter.java b/platform/testRunner/src/com/intellij/execution/testframework/export/TestResultsXmlFormatter.java index b4e29cb0b2a5..d4c9046f5755 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/export/TestResultsXmlFormatter.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/export/TestResultsXmlFormatter.java @@ -22,17 +22,13 @@ import com.intellij.execution.configurations.RunConfiguration; import com.intellij.execution.filters.*; import com.intellij.execution.filters.Filter; import com.intellij.execution.impl.ConsoleBuffer; -import com.intellij.execution.impl.RunManagerImpl; -import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl; import com.intellij.execution.testframework.*; import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileEditor.OpenFileDescriptor; import com.intellij.openapi.progress.ProgressManager; -import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Ref; -import com.intellij.openapi.util.UserDataHolder; import com.intellij.openapi.util.WriteExternalException; import com.intellij.openapi.util.text.StringUtil; import org.jdom.Attribute;