@@ -64,6 +64,7 @@ public static class GoOutputToGeneralTestEventsConverter extends OutputToGeneral
6464
6565    private  boolean  myFailed  = false ;
6666    private  boolean  mySkipped  = false ;
67+     private  boolean  myOutputAppeared  = false ;
6768    @ NotNull  private  StringBuilder  myStdOut  = new  StringBuilder ();
6869    @ NotNull  private  String  myCurrentTest  = "<test>" ;
6970
@@ -77,16 +78,18 @@ protected boolean processServiceMessages(@NotNull String text, Key outputType, S
7778      Matcher  matcher ;
7879
7980      if  ((matcher  = RUN .matcher (text )).find ()) {
81+         myOutputAppeared  = false ;
8082        String  testName  = StringUtil .notNullize (matcher .group (1 ), "<test>" );
8183        ServiceMessageBuilder  testStarted  = ServiceMessageBuilder .testStarted (testName ).addAttribute ("locationHint" , testUrl (testName ));
8284        return  processNotFinishedMessage (testStarted .toString (), outputType , visitor );
8385      }
8486
8587      if  ((matcher  = PASSED .matcher (text )).find ()) {
8688        String  testName  = StringUtil .notNullize (matcher .group (1 ), "<test>" );
87-         return  processNotFinishedMessage (ServiceMessageBuilder .testFinished (testName ).toString (), outputType , visitor );
89+         return  addNewLineIfNeeded (testName , outputType , visitor ) 
90+                && processNotFinishedMessage (ServiceMessageBuilder .testFinished (testName ).toString (), outputType , visitor );
8891      }
89-        
92+ 
9093      if  ((matcher  = SKIP .matcher (text )).find ()) {
9194        mySkipped  = true ;
9295        myCurrentTest  = StringUtil .notNullize (matcher .group (1 ), "<test>" );
@@ -109,6 +112,7 @@ protected boolean processServiceMessages(@NotNull String text, Key outputType, S
109112        }
110113      }
111114
115+       myOutputAppeared  = true ;
112116      return  super .processServiceMessages (text , outputType , visitor );
113117    }
114118
@@ -125,16 +129,22 @@ private boolean processNotFinishedMessage(String message, Key outputType, Servic
125129    }
126130
127131    private  boolean  processFailedMessage (Key  outputType , ServiceMessageVisitor  visitor ) throws  ParseException  {
128-       ServiceMessageBuilder  builder  = myFailed   
129-                                       ? ServiceMessageBuilder .testFailed (myCurrentTest )  
132+       ServiceMessageBuilder  builder  = myFailed 
133+                                       ? ServiceMessageBuilder .testFailed (myCurrentTest )
130134                                      : ServiceMessageBuilder .testIgnored (myCurrentTest );
131135      String  message  = builder .addAttribute ("message" , myStdOut .toString ().trim ()).toString ();
132-        
136+ 
133137      myFailed  = false ;
134138      mySkipped  = false ;
135139      myStdOut  = new  StringBuilder ();
136140      return  super .processServiceMessages (message , outputType , visitor )
137141             && super .processServiceMessages (ServiceMessageBuilder .testFinished (myCurrentTest ).toString (), outputType , visitor );
138142    }
143+ 
144+     private  boolean  addNewLineIfNeeded (@ NotNull  String  testName , @ NotNull  Key  outputType , @ NotNull  ServiceMessageVisitor  visitor )
145+       throws  ParseException  {
146+       ServiceMessageBuilder  message  = ServiceMessageBuilder .testStdOut (testName ).addAttribute ("out" , "\n " );
147+       return  !myOutputAppeared  || processServiceMessages (message .toString (), outputType , visitor );
148+     }
139149  }
140150}
0 commit comments