reports/Builder__TestReport.st
changeset 236 475480551293
parent 234 b48196ea5f68
child 237 8229efa1f621
--- a/reports/Builder__TestReport.st	Fri Jun 06 02:23:26 2014 +0200
+++ b/reports/Builder__TestReport.st	Fri Jun 06 02:23:32 2014 +0200
@@ -269,44 +269,48 @@
 
 addError: testcase detail: exception
 
-    format writeTestCase: testcase outcome: #error time: time exception: exception.
+    outcome result: (TestResult stateError).
+    format writeTestCase: testcase outcome: outcome time: time exception: exception.
     Transcript show:'ERROR'.
     self errorOutcomes add:outcome.      
     nerror := nerror + 1.
 
     "Created: / 03-08-2011 / 15:00:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 23-10-2013 / 11:46:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-06-2014 / 01:00:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 addFailure: testcase detail: exception
 
-    format writeTestCase: testcase outcome: #failure time: time exception: exception.
+    outcome result: (TestResult stateFail).
+    format writeTestCase: testcase outcome: outcome time: time exception: exception.
     Transcript show:'FAILED'.
     self failureOutcomes add: outcome.
     nfailed := nfailed + 1.
 
     "Created: / 03-08-2011 / 15:00:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 23-10-2013 / 11:47:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-06-2014 / 01:00:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 addPass: testcase
 
-    format writeTestCase: testcase outcome: #pass time: time exception: nil.
+    outcome result: TestResult statePass.
+    format writeTestCase: testcase outcome: outcome time: time exception: nil.
     Transcript show:'OK'.
     npassed := npassed + 1.
 
     "Created: / 03-08-2011 / 15:19:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 31-01-2013 / 13:53:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-06-2014 / 01:00:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 addSkipped: testcase
 
-    format writeTestCase: testcase outcome: #skip time: time exception: nil.
+    outcome result: TestResult stateSkip.
+    format writeTestCase: testcase outcome: outcome time: time exception: nil.
     Transcript show:'SKIPPED'.
     nskipped := nskipped + 1.
 
     "Created: / 21-11-2012 / 15:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 31-01-2013 / 13:53:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-06-2014 / 00:59:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !TestReport::Result methodsFor:'initialization'!
@@ -322,10 +326,26 @@
 !TestReport::Result methodsFor:'running'!
 
 performCase:aTestCase 
+    | savedStdout savedStderr savedTranscript collector|
 
-    time := Time millisecondsToRun: [ super performCase: aTestCase ]
+    savedStdout := Stdout.
+    savedStderr := Stdout.
+    savedTranscript := Transcript.
+    collector := WriteStream on:(String new:100).
+    [
+        Stdout := SplittingWriteStream on:collector and: Stdout.
+        Stderr := SplittingWriteStream on:collector and: Stderr.
+        Transcript := SplittingWriteStream on:collector and: Transcript.
+        time := Time millisecondsToRun: [ super performCase: aTestCase ]
+    ] ensure:[
+        Stdout := savedStdout.
+        Stderr := savedStderr.
+        Transcript := savedTranscript.
+        outcome collectedOutput: collector contents.
+    ].
 
     "Created: / 03-08-2011 / 18:40:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 05-06-2014 / 16:25:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 runCase:aTestCase debugged: debugged 
@@ -421,8 +441,9 @@
     timeouted ifTrue:[
         error := TimeoutError new messageText: 'Timed out'.
         stack := 'Timed out'.
+        outcome result: TestResult stateError.
         format 
-            writeTestCase: aTestCase outcome: #error 
+            writeTestCase: aTestCase outcome: outcome 
                      time: etime - stime
                 exception: error
                stacktrace: stack.
@@ -433,6 +454,7 @@
     Transcript cr.
 
     "Created: / 12-01-2012 / 17:42:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-06-2014 / 00:55:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 unixForkCase:aTestCase debugged: debugged timeout: timeout
@@ -511,9 +533,10 @@
                                             stack := 'Oops, VM terminated on signal ' , status code p ] ] ]. ].
             format streamOpenForAppend.
             log ifTrue:[
+                     outcome result: TestResult stateError.
                      format stream stream position: logPos.
                      format 
-                        writeTestCase: aTestCase outcome: #error 
+                        writeTestCase: aTestCase outcome: outcome 
                                  time: etime - stime
                             exception: error
                            stacktrace: stack.
@@ -524,6 +547,7 @@
     Transcript cr.
 
     "Created: / 12-01-2012 / 17:43:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-06-2014 / 00:54:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !TestReport class methodsFor:'documentation'!