--- a/TestAsserter.st Tue Aug 09 23:56:19 2011 +0200
+++ b/TestAsserter.st Wed Aug 10 00:08:34 2011 +0200
@@ -1,7 +1,7 @@
"{ Package: 'stx:goodies/sunit' }"
Object subclass:#TestAsserter
- instanceVariableNames:'startTime endTime exceptionDetail'
+ instanceVariableNames:'startTime endTime collectedStdout exceptionDetail'
classVariableNames:''
poolDictionaries:''
category:'SUnit-Base'
@@ -265,16 +265,38 @@
ex sunitExitWith:(conditionBlock value: ex)]
"Created: / 05-05-2011 / 20:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+withStandardOutputAndTranscriptRedirectedDo:aBlock
+ |result savedStdout savedTranscript stdOutCollector|
+
+ ((Smalltalk respondsTo:#isSmalltalkX) and:[Smalltalk isSmalltalkX]) ifTrue:[
+ savedStdout := Stdout.
+ savedTranscript := Transcript.
+ stdOutCollector := WriteStream on:(String new:100).
+ [
+ Stdout := Transcript := stdOutCollector.
+ result := aBlock value.
+ ] ensure:[
+ Stdout := savedStdout.
+ Transcript := savedTranscript.
+ ].
+ collectedStdout := stdOutCollector contents.
+ ^ result.
+ ].
+
+ "/ add other dialects here...
+ ^ aBlock value
! !
!TestAsserter class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/goodies/sunit/TestAsserter.st,v 1.11 2011-08-07 10:39:39 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/sunit/TestAsserter.st,v 1.12 2011-08-09 22:08:34 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/goodies/sunit/TestAsserter.st,v 1.11 2011-08-07 10:39:39 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/sunit/TestAsserter.st,v 1.12 2011-08-09 22:08:34 cg Exp $'
!
version_SVN