@@ -231,6 +231,48 @@ assert logFalseCondition(node != null, () -> "Could not find suite id \"" + even
231231 }
232232
233233 private void doProcess (final PostSuiteEvent event ) {
234+ final ItemNode node = run .getItemNodes ().get (event .getId ());
235+ assert logFalseCondition (node != null , () -> "Could not find suite id \" " + event .getId ()
236+ + "\" when processing PostSuiteEvent " + event .toString () + "." );
237+ final Suite suite = (Suite ) node .getUserObject ();
238+ if (suite .getEndTime () == null ) {
239+ // first occurrence, multiple possible, e.g. ut_tester and ut_user in utPLSQL project
240+ suite .setStartTime (event .getStartTime ());
241+ suite .setEndTime (event .getEndTime ());
242+ suite .setExecutionTime (event .getExecutionTime ());
243+ suite .setCounter (event .getCounter ());
244+ suite .setErrorStack (event .getErrorStack ());
245+ suite .setWarnings (event .getWarnings ());
246+ suite .setServerOutput (event .getServerOutput ());
247+ } else {
248+ // subsequent occurrence, aggregate
249+ suite .setEndTime (event .getEndTime ());
250+ suite .setExecutionTime (suite .getExecutionTime () + event .getExecutionTime ());
251+ suite .getCounter ().setWarning (suite .getCounter ().getWarning () + event .getCounter ().getWarning ());
252+ suite .getCounter ().setDisabled (suite .getCounter ().getDisabled () + event .getCounter ().getDisabled ());
253+ suite .getCounter ().setSuccess (suite .getCounter ().getSuccess () + event .getCounter ().getSuccess ());
254+ suite .getCounter ().setFailure (suite .getCounter ().getFailure () + event .getCounter ().getFailure ());
255+ suite .getCounter ().setError (suite .getCounter ().getError () + event .getCounter ().getError ());
256+ if (event .getWarnings () != null ) {
257+ StringBuilder sb = new StringBuilder ();
258+ if (suite .getWarnings () != null ) {
259+ sb .append (suite .getWarnings ());
260+ sb .append ("\n \n " );
261+ }
262+ sb .append (event .getWarnings ());
263+ suite .setWarnings (sb .toString ());
264+ }
265+ if (event .getServerOutput () != null ) {
266+ StringBuilder sb = new StringBuilder ();
267+ if (suite .getServerOutput () != null ) {
268+ sb .append (suite .getServerOutput ());
269+ sb .append ("\n \n " );
270+ }
271+ sb .append (event .getServerOutput ());
272+ suite .setServerOutput (sb .toString ());
273+ }
274+ }
275+
234276 final Test test = run .getCurrentTest ();
235277 // Errors on suite levels are reported as warnings by the utPLSQL framework,
236278 // since an error on suite level does not affect a status of a test.
0 commit comments