Correctly capture and report stdout.
--- a/reports/Builder__TestReport.st Fri Aug 08 12:50:15 2014 +0200
+++ b/reports/Builder__TestReport.st Tue Sep 16 19:57:01 2014 +0200
@@ -10,7 +10,7 @@
!
TestResult subclass:#Result
- instanceVariableNames:'format time npassed nfailed nerror nskipped'
+ instanceVariableNames:'format time npassed nfailed nerror nskipped collector'
classVariableNames:''
poolDictionaries:''
privateIn:TestReport
@@ -303,25 +303,27 @@
addError: testcase detail: exception
outcome result: (TestResult stateError).
+ outcome collectedOutput: collector contents.
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: / 06-06-2014 / 09:34:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-09-2014 / 18:55:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
addFailure: testcase detail: exception
outcome result: (TestResult stateFail).
+ outcome collectedOutput: collector contents.
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: / 06-06-2014 / 09:34:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-09-2014 / 15:23:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
addPass: testcase
@@ -338,6 +340,7 @@
addSkipped: testcase
outcome := self createOutcome.
+ outcome collectedOutput: collector contents.
outcome testCase: testcase.
outcome result: TestResult stateSkip.
format writeTestCase: testcase outcome: outcome time: time exception: nil.
@@ -345,7 +348,7 @@
nskipped := nskipped + 1.
"Created: / 21-11-2012 / 15:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 06-06-2014 / 11:20:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-09-2014 / 15:24:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!TestReport::Result methodsFor:'initialization'!
@@ -361,7 +364,7 @@
!TestReport::Result methodsFor:'running'!
performCase:aTestCase
- | savedStdout savedStderr savedTranscript collector|
+ | savedStdout savedStderr savedTranscript |
savedStdout := Stdout.
savedStderr := Stdout.
@@ -376,11 +379,12 @@
Stdout := savedStdout.
Stderr := savedStderr.
Transcript := savedTranscript.
- outcome collectedOutput: collector contents.
+ outcome collectedOutput: nil. "/ flush it, it has been written to output already
+ collector := nil.
].
"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>"
+ "Modified: / 16-09-2014 / 15:28:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
runCase:aTestCase debugged: debugged