--- a/TestRunner.st Mon Sep 03 15:05:00 2001 +0200
+++ b/TestRunner.st Mon Sep 03 15:07:05 2001 +0200
@@ -1,11 +1,11 @@
"{ Package: 'stx:goodies/sunit' }"
ApplicationModel subclass:#TestRunner
- instanceVariableNames:'result lastPass defect allDefects defectMenu details mode
- scriptModel script numberOfTestsToRun'
- classVariableNames:''
- poolDictionaries:''
- category:'SUnit-UI'
+ instanceVariableNames:'result lastPass defect allDefects defectMenu details mode
+ scriptModel script numberOfTestsToRun'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'SUnit-UI'
!
@@ -26,8 +26,8 @@
<resource: #image>
^Icon
- constantNamed:#'TestRunner class defaultIcon'
- ifAbsentPut:[(Depth4Image new) width: 28; height: 28; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+ constantNamed:#'TestRunner class defaultIcon'
+ ifAbsentPut:[(Depth4Image new) width: 28; height: 28; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O??C???????C?<O?0@@??<O??????<O?0??@@@@@@@@@@@@@@@@@@@@@BH"H"H"
H"H"H#L3L0@@H"H"H"H"H"H#L3L3@@@"H"H"H"H"H#L3L3L@@BH"H"H"H"H#L3L3L0@@H"H"H"H@@@L1L3L3@@@"H"H"HO??<A@3L3L@@BH"H"HO???1@3L3
L0@@H"H"HO???1@@L3L3@@@"H"H <_?1@O@3L3L@@BH"H"C0G1@O<CL3L0@@H"H"HO@A@O?0L3L3@@@"H"H ?0@O??@3L3L@@BH"H#LO<O??@3L3L0@@H"H#
@@ -56,103 +56,103 @@
^
#(#FullSpec
- #name: #windowSpec
- #window:
+ #name: #windowSpec
+ #window:
#(#WindowSpec
- #label: 'SUnit Camp Smalltalk 2.7b TestRunner'
- #name: 'SUnit Camp Smalltalk 2.7b TestRunner'
- #min: #(#Point 362 122)
- #bounds: #(#Rectangle 16 46 509 221)
- #icon: #defaultIcon
- )
- #component:
+ #label: 'SUnit Camp Smalltalk 2.7b TestRunner'
+ #name: 'SUnit Camp Smalltalk 2.7b TestRunner'
+ #min: #(#Point 362 122)
+ #bounds: #(#Rectangle 16 46 509 221)
+ #icon: #defaultIcon
+ )
+ #component:
#(#SpecCollection
- #collection: #(
- #(#ActionButtonSpec
- #label: 'Refresh'
- #name: 'Button3'
- #layout: #(#LayoutFrame 0 0 0 0 75 0 24 0)
- #model: #refreshSuites
- )
- #(#MenuButtonSpec
- #label: 'ExampleSetTest'
- #name: #tests
- #layout: #(#LayoutFrame 76 0 0 0 -216 1 24 0)
- #model: #script
- #menu: #scriptModel
- #useIndex: true
- )
- #(#ActionButtonSpec
- #label: 'Run'
- #name: 'Button1'
- #layout: #(#LayoutFrame -215 1 0 0 -160 1 24 0)
- #model: #runTests
- #enableChannel: #enableRunButton
- )
- #(#ActionButtonSpec
- #label: 'ReRun Defects'
- #name: 'Button5'
- #layout: #(#LayoutFrame -159 1 0 0 -57 1 24 0)
- #model: #runDefects
- #enableChannel: #enableRunDefectsButton
- )
- #(#ActionButtonSpec
- #label: 'Run All'
- #name: 'Button2'
- #layout: #(#LayoutFrame -56 1 0 0 0 1 24 0)
- #model: #runAllTests
- )
- #(#LabelSpec
- #label: 'N/A'
- #name: 'mode'
- #layout: #(#LayoutFrame 0 0 25 0 0 1 0 0.5)
- #style: #(#FontDescription #Arial #bold #roman 14)
- #labelChannel: #mode
- )
- #(#LabelSpec
- #label: '...'
- #name: 'details'
- #layout: #(#LayoutFrame 0 0 0 0.5 0 1 -25 1)
- #labelChannel: #details
- )
- #(#MenuButtonSpec
- #name: #defects
- #layout: #(#LayoutFrame 0 0 -24 1 -152 1 0 1)
- #isOpaque: true
- #flags: 40
- #model: #selectionHolder
- #initiallyDisabled: true
- #enableChannel: #enableDefectsList
- #menu: #defectMenu
- )
- #(#ActionButtonSpec
- #label: 'Browse'
- #name: 'Button4'
- #layout: #(#LayoutFrame -151 1 -24 1 -76 1 0 1)
- #model: #browseSelectedTestCase
- #initiallyDisabled: true
- #enableChannel: #enableRunButton
- )
- #(#ActionButtonSpec
- #label: 'Debug'
- #name: 'Button6'
- #layout: #(#LayoutFrame -75 1 -24 1 0 1 0 1)
- #model: #debugSelectedFailure
- #initiallyDisabled: true
- #enableChannel: #enableDebugButton
- )
- #(#ProgressIndicatorSpec
- #name: 'ProgressIndicator1'
- #layout: #(#LayoutFrame 0 0.0 25 0 0 1.0 36 0)
- #visibilityChannel: #percentageIndicatorVisible
- #model: #percentageDone
- #foregroundColor: #(#Color 32.9992 32.9992 0.0)
- #backgroundColor: #(#Color 66.9993 66.9993 0.0)
- #showPercentage: false
- )
- )
+ #collection: #(
+ #(#ActionButtonSpec
+ #label: 'Refresh'
+ #name: 'Button3'
+ #layout: #(#LayoutFrame 0 0 0 0 75 0 24 0)
+ #model: #refreshSuites
+ )
+ #(#MenuButtonSpec
+ #label: 'ExampleSetTest'
+ #name: #tests
+ #layout: #(#LayoutFrame 76 0 0 0 -216 1 24 0)
+ #model: #script
+ #menu: #scriptModel
+ #useIndex: true
+ )
+ #(#ActionButtonSpec
+ #label: 'Run'
+ #name: 'Button1'
+ #layout: #(#LayoutFrame -215 1 0 0 -160 1 24 0)
+ #model: #runTests
+ #enableChannel: #enableRunButton
+ )
+ #(#ActionButtonSpec
+ #label: 'ReRun Defects'
+ #name: 'Button5'
+ #layout: #(#LayoutFrame -159 1 0 0 -57 1 24 0)
+ #model: #runDefects
+ #enableChannel: #enableRunDefectsButton
+ )
+ #(#ActionButtonSpec
+ #label: 'Run All'
+ #name: 'Button2'
+ #layout: #(#LayoutFrame -56 1 0 0 0 1 24 0)
+ #model: #runAllTests
+ )
+ #(#LabelSpec
+ #label: 'N/A'
+ #name: 'mode'
+ #layout: #(#LayoutFrame 0 0 25 0 0 1 0 0.5)
+ #style: #(#FontDescription #Arial #bold #roman 14)
+ #labelChannel: #mode
+ )
+ #(#LabelSpec
+ #label: '...'
+ #name: 'details'
+ #layout: #(#LayoutFrame 0 0 0 0.5 0 1 -25 1)
+ #labelChannel: #details
+ )
+ #(#MenuButtonSpec
+ #name: #defects
+ #layout: #(#LayoutFrame 0 0 -24 1 -152 1 0 1)
+ #isOpaque: true
+ #flags: 40
+ #model: #selectionHolder
+ #initiallyDisabled: true
+ #enableChannel: #enableDefectsList
+ #menu: #defectMenu
+ )
+ #(#ActionButtonSpec
+ #label: 'Browse'
+ #name: 'Button4'
+ #layout: #(#LayoutFrame -151 1 -24 1 -76 1 0 1)
+ #model: #browseSelectedTestCase
+ #initiallyDisabled: true
+ #enableChannel: #enableRunButton
+ )
+ #(#ActionButtonSpec
+ #label: 'Debug'
+ #name: 'Button6'
+ #layout: #(#LayoutFrame -75 1 -24 1 0 1 0 1)
+ #model: #debugSelectedFailure
+ #initiallyDisabled: true
+ #enableChannel: #enableDebugButton
+ )
+ #(#ProgressIndicatorSpec
+ #name: 'ProgressIndicator1'
+ #layout: #(#LayoutFrame 0 0.0 25 0 0 1.0 36 0)
+ #visibilityChannel: #percentageIndicatorVisible
+ #model: #percentageDone
+ #foregroundColor: #(#Color 32.9992 32.9992 0.0)
+ #backgroundColor: #(#Color 66.9993 66.9993 0.0)
+ #showPercentage: false
+ )
+ )
- )
+ )
)
! !
@@ -160,7 +160,7 @@
open
- ^super open
+ ^super open
!
openOnTestCase:aTestCaseSubclass
@@ -192,7 +192,7 @@
(if this app is embedded in a subCanvas)."
^ #(
- #script
+ #script
).
! !
@@ -207,51 +207,51 @@
"*** Please change as required and accept it in the browser."
^defectMenu isNil
- ifTrue: [defectMenu := OrderedCollection new asValue]
- ifFalse: [defectMenu]
+ ifTrue: [defectMenu := OrderedCollection new asValue]
+ ifFalse: [defectMenu]
"Modified: / 4.4.2000 / 20:00:31 / Sames"
!
defects
- ^self builder componentAt: #defects
+ ^self builder componentAt: #defects
"Created: / 21.6.2000 / 12:19:29 / Sames"
!
details
- "This method was generated by UIDefiner. Any edits made here
- may be lost whenever methods are automatically defined. The
- initialization provided below may have been preempted by an
- initialize method."
+ "This method was generated by UIDefiner. Any edits made here
+ may be lost whenever methods are automatically defined. The
+ initialization provided below may have been preempted by an
+ initialize method."
- ^details isNil
- ifTrue:
- [details := '...' asValue]
- ifFalse:
- [details]
+ ^details isNil
+ ifTrue:
+ [details := '...' asValue]
+ ifFalse:
+ [details]
!
mode
- "This method was generated by UIDefiner. Any edits made here
- may be lost whenever methods are automatically defined. The
- initialization provided below may have been preempted by an
- initialize method."
+ "This method was generated by UIDefiner. Any edits made here
+ may be lost whenever methods are automatically defined. The
+ initialization provided below may have been preempted by an
+ initialize method."
- ^mode isNil
- ifTrue:
- [mode := 'N/A' asValue]
- ifFalse:
- [mode]
+ ^mode isNil
+ ifTrue:
+ [mode := 'N/A' asValue]
+ ifFalse:
+ [mode]
!
percentageDone
|holder|
(holder := builder bindingAt:#percentageDone) isNil ifTrue:[
- holder := 0 asValue.
- builder aspectAt:#percentageDone put:holder.
+ holder := 0 asValue.
+ builder aspectAt:#percentageDone put:holder.
].
^ holder.
!
@@ -260,8 +260,8 @@
|holder|
(holder := builder bindingAt:#percentageIndicatorVisible) isNil ifTrue:[
- holder := false asValue.
- builder aspectAt:#percentageIndicatorVisible put:holder.
+ holder := false asValue.
+ builder aspectAt:#percentageIndicatorVisible put:holder.
].
^ holder.
!
@@ -276,9 +276,9 @@
|holder|
(holder := builder bindingAt:#script) isNil ifTrue:[
- holder := ValueHolder new.
- builder aspectAt:#script put:holder.
- holder onChangeSend:#scriptSelectionChanged to:self.
+ holder := ValueHolder new.
+ builder aspectAt:#script put:holder.
+ holder onChangeSend:#scriptSelectionChanged to:self.
"/ holder addDependent:self.
].
^ holder.
@@ -321,7 +321,7 @@
selection
- ^defect
+ ^defect
"Created: / 4.4.2000 / 18:50:55 / Sames"
!
@@ -336,8 +336,8 @@
|holder|
(holder := builder bindingAt:#selectionHolder) isNil ifTrue:[
- holder := AspectAdaptor new subject:self; forAspect:#selection.
- builder aspectAt:#selectionHolder put:holder.
+ holder := AspectAdaptor new subject:self; forAspect:#selection.
+ builder aspectAt:#selectionHolder put:holder.
"/ holder addDependent:self.
].
^ holder.
@@ -348,7 +348,7 @@
tests
- ^self builder componentAt: #tests
+ ^self builder componentAt: #tests
"Created: / 4.4.2000 / 19:57:37 / Sames"
! !
@@ -361,13 +361,13 @@
testCaseName := self scriptModel value at:(self script value).
testCase := Smalltalk at:testCaseName asSymbol.
testCase notNil ifTrue:[
- (UserPreferences current systemBrowserClass openInClass:testCase)
- selectProtocolsMatching:'*'
+ (UserPreferences current systemBrowserClass openInClass:testCase)
+ selectProtocolsMatching:'*'
]
!
debugSelectedFailure
- self debugTest: self selection
+ self debugTest: self selection
"Created: / 21.6.2000 / 10:58:58 / Sames"
"Modified: / 21.6.2000 / 12:21:05 / Sames"
@@ -399,10 +399,10 @@
| holder |
(holder := builder bindingAt: #enableDebugButton) isNil
- ifTrue:
- [holder := true asValue.
- builder aspectAt: #enableDebugButton put: holder
- " holder addDependent:self."].
+ ifTrue:
+ [holder := true asValue.
+ builder aspectAt: #enableDebugButton put: holder
+ " holder addDependent:self."].
^holder
"Created: / 21.6.2000 / 10:47:34 / Sames"
@@ -419,8 +419,8 @@
|holder|
(holder := builder bindingAt:#enableDefectsList) isNil ifTrue:[
- holder := true asValue.
- builder aspectAt:#enableDefectsList put:holder.
+ holder := true asValue.
+ builder aspectAt:#enableDefectsList put:holder.
"/ holder addDependent:self.
].
^ holder.
@@ -438,8 +438,8 @@
|holder|
(holder := builder bindingAt:#enableRunButton) isNil ifTrue:[
- holder := true asValue.
- builder aspectAt:#enableRunButton put:holder.
+ holder := true asValue.
+ builder aspectAt:#enableRunButton put:holder.
"/ holder addDependent:self.
].
^ holder.
@@ -457,80 +457,80 @@
|holder|
(holder := builder bindingAt:#enableRunDefectsButton) isNil ifTrue:[
- holder := true asValue.
- builder aspectAt:#enableRunDefectsButton put:holder.
+ holder := true asValue.
+ builder aspectAt:#enableRunDefectsButton put:holder.
"/ holder addDependent:self.
].
^ holder.
!
refreshSuites
- self updateSuitesList.
- self script value:nil.
- self tests selection: 0.
- self defects selection: 0.
- result := TestResult new.
- self displayRefresh
+ self updateSuitesList.
+ self script value:nil.
+ self tests selection: 0.
+ self defects selection: 0.
+ result := TestResult new.
+ self displayRefresh
"Created: / 21.6.2000 / 10:58:34 / Sames"
"Modified: / 21.6.2000 / 12:19:54 / Sames"
!
runAllTests
- self runSuite: self allTestSuite
+ self runSuite: self allTestSuite
!
runDefectTests
- | testSuite |
- (testSuite := self defectTestSuite) notNil ifTrue:
- [self runSuite: testSuite]
+ | testSuite |
+ (testSuite := self defectTestSuite) notNil ifTrue:
+ [self runSuite: testSuite]
!
runDefects
allDefects size > 0 ifTrue:[
- ^ self runDefectTests
+ ^ self runDefectTests
].
self runTests
!
runSuite: aTestSuite
- |numTests|
+ |numTests|
- "/ count the number of individual tests
- numTests := 0.
- aTestSuite tests do:[:eachTestOrSubSuite |
- (eachTestOrSubSuite isKindOf:TestSuite) ifTrue:[
- numTests := numTests + eachTestOrSubSuite tests size.
- ] ifFalse:[
- numTests := numTests + 1.
- ]
- ].
- numberOfTestsToRun := numTests.
- self percentageDone value:0.
+ "/ count the number of individual tests
+ numTests := 0.
+ aTestSuite tests do:[:eachTestOrSubSuite |
+ (eachTestOrSubSuite isKindOf:TestSuite) ifTrue:[
+ numTests := numTests + eachTestOrSubSuite tests size.
+ ] ifFalse:[
+ numTests := numTests + 1.
+ ]
+ ].
+ numberOfTestsToRun := numTests.
+ self percentageDone value:0.
- Cursor
- wait
- showWhile:[
- self displayRunning.
- aTestSuite addDependentToHierachy: self.
- result := TestResult new.
- self showPercentageIndicator.
+ Cursor
+ wait
+ showWhile:[
+ self displayRunning.
+ aTestSuite addDependentToHierachy: self.
+ result := TestResult new.
+ self showPercentageIndicator.
- [
- aTestSuite run:result
- ] ensure: [
- aTestSuite removeDependentFromHierachy: self.
- self hidePercentageIndicator.
- self displayNormalColorInProgress.
- ].
- self updateWindow
- ]
+ [
+ aTestSuite run:result
+ ] ensure: [
+ aTestSuite removeDependentFromHierachy: self.
+ self hidePercentageIndicator.
+ self displayNormalColorInProgress.
+ ].
+ self updateWindow
+ ]
!
runTests
- | testSuite |
- (testSuite := self freshTestSuite) notNil ifTrue:
- [self runSuite: testSuite]
+ | testSuite |
+ (testSuite := self freshTestSuite) notNil ifTrue:
+ [self runSuite: testSuite]
"Modified: / 2.4.2000 / 14:16:10 / Sames"
!
@@ -541,7 +541,7 @@
selection: aValue
- self debugTest: aValue
+ self debugTest: aValue
"Created: / 4.4.2000 / 18:54:09 / Sames"
"Modified: / 4.4.2000 / 19:01:33 / Sames"
@@ -559,13 +559,13 @@
self enableRunDefectsButton value:(ok and:[allDefects size > 0]).
self script value notNil ifTrue:[
- className := self scriptModel value at:(self script value) ifAbsent:nil.
- (ok and:[className notNil]) ifTrue:[
- cls := Smalltalk at:className.
- (cls class implements:#description) ifTrue:[
- description := cls description.
- ]
- ].
+ className := self scriptModel value at:(self script value) ifAbsent:nil.
+ (ok and:[className notNil]) ifTrue:[
+ cls := Smalltalk at:className.
+ (cls class implements:#description) ifTrue:[
+ description := cls description.
+ ]
+ ].
].
self displayDetails:nil.
self displayMode: (description ? '').
@@ -576,40 +576,40 @@
!
updateSuitesList
- self scriptModel value: (TestCase allSubclasses collect: [:each | each name]) sort.
+ self scriptModel value: (TestCase allSubclasses collect: [:each | each name]) sort.
! !
!TestRunner methodsFor:'Private'!
allTestSuite
- | tokens stream |
- tokens := (TestCase subclasses collect: [:each | each name , '* '])
- copyWithout: 'SUnitTest* '.
- stream := WriteStream on: String new.
- tokens do: [:each | stream nextPutAll: each].
- ^TestSuitesScripter run: stream contents
+ | tokens stream |
+ tokens := (TestCase subclasses collect: [:each | each name , '* '])
+ copyWithout: 'SUnitTest* '.
+ stream := WriteStream on: String new.
+ tokens do: [:each | stream nextPutAll: each].
+ ^TestSuitesScripter run: stream contents
!
defectTestSuite
- |suite|
+ |suite|
- suite := TestSuite new.
- allDefects keysAndValuesDo:[:nm :test |
- suite addTest:test.
- ].
- ^suite
+ suite := TestSuite new.
+ allDefects keysAndValuesDo:[:nm :test |
+ suite addTest:test.
+ ].
+ ^suite
!
formatTime: aTime
- aTime hours > 0 ifTrue: [^aTime hours printString , 'h'].
- aTime minutes > 0 ifTrue: [^aTime minutes printString , 'min'].
- ^aTime seconds printString , ' sec'
+ aTime hours > 0 ifTrue: [^aTime hours printString , 'h'].
+ aTime minutes > 0 ifTrue: [^aTime minutes printString , 'min'].
+ ^aTime seconds printString , ' sec'
!
freshTestSuite
- ^TestSuitesScripter run: self tests contents
+ ^TestSuitesScripter run: self tests contents
"Modified: / 4.4.2000 / 20:13:41 / Sames"
!
@@ -639,8 +639,8 @@
!
timeSinceLastPassAsString
- lastPass isNil ifTrue: [^''].
- ^', ' , (self formatTime: (Time now subtractTime: lastPass getSeconds)) , ' since last Pass'
+ lastPass isNil ifTrue: [^''].
+ ^', ' , (self formatTime: (Time now subtractTime: lastPass getSeconds)) , ' since last Pass'
"Modified: / 3.4.2000 / 19:17:11 / Sames"
! !
@@ -649,14 +649,14 @@
displayColor: aColorValue
- (builder componentAt: #mode) widget insideColor: aColorValue.
- (builder componentAt: #details) widget insideColor: aColorValue.
+ (builder componentAt: #mode) widget insideColor: aColorValue.
+ (builder componentAt: #details) widget insideColor: aColorValue.
"Modified: / 2.4.2000 / 14:21:42 / Sames"
!
displayDefault
- self displayColor: self tests backgroundColor
+ self displayColor: self tests backgroundColor
"Created: / 21.6.2000 / 12:28:06 / Sames"
"Modified: / 21.6.2000 / 12:35:09 / Sames"
@@ -666,9 +666,9 @@
| menuButton |
menuButton := self builder componentAt: #defects.
aCollection isEmpty ifTrue: [
- menuButton disable.
- self enableRunDefectsButton value:false.
- ^ self
+ menuButton disable.
+ self enableRunDefectsButton value:false.
+ ^ self
].
allDefects := Dictionary new.
aCollection do: [:each | allDefects at: each printString put: each].
@@ -680,8 +680,8 @@
!
displayDetails: aString
- self details value: aString.
- self windowGroup repairDamage.
+ self details value: aString.
+ self windowGroup repairDamage.
"Modified: / 21.6.2000 / 11:10:14 / Sames"
!
@@ -695,21 +695,21 @@
!
displayFail
- self displayRed.
- self displayMode: 'Fail'.
- self displayDetails: result printString.
+ self displayRed.
+ self displayMode: 'Fail'.
+ self displayDetails: result printString.
!
displayGray
- self displayColor: (View defaultViewBackgroundColor)
+ self displayColor: (View defaultViewBackgroundColor)
!
displayGreen
- self displayColor: ColorValue green
+ self displayColor: ColorValue green
!
displayMode: aString
- self mode value: aString
+ self mode value: aString
"Modified: / 21.6.2000 / 11:14:19 / Sames"
!
@@ -730,7 +730,7 @@
!
displayRed
- self displayColor: ColorValue red.
+ self displayColor: ColorValue red.
!
displayRefresh
@@ -747,13 +747,13 @@
!
displayRunning
- self displayYellow.
- self displayMode: 'running'.
- self displayDetails: '...'.
+ self displayYellow.
+ self displayMode: 'running'.
+ self displayDetails: '...'.
!
displayYellow
- self displayColor: ColorValue yellow
+ self displayColor: ColorValue yellow
!
hidePercentageIndicator
@@ -764,39 +764,39 @@
self percentageIndicatorVisible value:true.
!
-update: anObject
+update:something with:aParameter from:changedObject
changedObject == Smalltalk ifTrue:[
- (anArgument isBehavior and:[anArgument isSubclassOf:TestCase]) ifTrue:[
+ (changedObject isBehavior and:[changedObject isSubclassOf:TestCase]) ifTrue:[
self updateSuitesList
].
^ self
].
- (anObject isKindOf: TestCase) ifTrue: [
+ (changedObject isKindOf: TestCase) ifTrue: [
(result errorCount + result failureCount) > 0 ifTrue:[
self displayErrorColorInProgress.
].
self percentageDone value:(result runCount / numberOfTestsToRun * 100) rounded.
- self displayDetails: anObject printString.
+ self displayDetails: changedObject printString.
^ self
].
- super update: anObject
+ super update:something with:aParameter from:changedObject
!
updateDefects
- self displayDefects: result defects
+ self displayDefects: result defects
!
updateWindow
- result hasPassed
- ifTrue: [self displayPass]
- ifFalse: [self displayFail].
- self updateDefects
+ result hasPassed
+ ifTrue: [self displayPass]
+ ifFalse: [self displayFail].
+ self updateDefects
! !
!TestRunner class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/goodies/sunit/TestRunner.st,v 1.18 2001-09-03 13:05:00 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/sunit/TestRunner.st,v 1.19 2001-09-03 13:07:05 cg Exp $'
! !