#BUGFIX by sr
authorsr
Thu, 12 Oct 2017 13:22:28 +0200
changeset 426 537fcbdbd712
parent 425 1378afa7824b
child 427 737c97ae6193
#BUGFIX by sr class: RunUnitTests class definition class: RunUnitTests class added: #corruptedUnitTestClassNames #documentation #excludedUnitTestClassNamesForAll #excludedUnitTestClassNamesForExpecco #log:type: #logInfo: #logWarning: #run #runWithCompiledUnitTestClasses: #runWithCompiledUnitTestClasses:arguments:debug: #version #version_CVS
quickSelfTest/RunUnitTests.st
--- a/quickSelfTest/RunUnitTests.st	Thu Oct 12 13:04:36 2017 +0200
+++ b/quickSelfTest/RunUnitTests.st	Thu Oct 12 13:22:28 2017 +0200
@@ -36,6 +36,20 @@
 !
 
 runWithCompiledUnitTestClasses:useCompiledUnitTestClasses
+    |cmdArgs|
+
+    cmdArgs := Smalltalk commandLineArguments.
+    
+    self 
+        runWithCompiledUnitTestClasses:useCompiledUnitTestClasses
+        arguments:cmdArgs
+        debug:(cmdArgs includes:'--debug')
+!
+
+runWithCompiledUnitTestClasses:useCompiledUnitTestClasses
+    arguments:arguments
+    debug:debug
+
     |doRunSpecificUnitTests unitTestSuiteName excludedUnitTestClassNames corruptedUnitTestClassNames
      cmdArgs
      unitTestSuite
@@ -48,143 +62,150 @@
     excludedUnitTestClassNames := self excludedUnitTestClassNamesForAll.
     corruptedUnitTestClassNames := self corruptedUnitTestClassNames.
 
-    cmdArgs := Smalltalk commandLineArguments.
+    cmdArgs := arguments.
     (cmdArgs includesAny:#('--help' '/?')) ifTrue:[
-	Stdout showCR:'--help............................this infromation'.
-	Stdout showCR:'--settingsFile....................path to a stx settings file (may to set compiler options)'.
-	Stdout showCR:'--runOnlyExpeccoUnitTests.........run only expecco related test cases'.
-	Stdout showCR:'--resultFile......................path to a file for storing the result as xml'.
-	Stdout showCR:'--forceTestCase...................class name of a test case (only this test case will be executed)'.
+        Stdout showCR:'--help............................this infromation'.
+        Stdout showCR:'--settingsFile....................path to a stx settings file (may to set compiler options)'.
+        Stdout showCR:'--runOnlyExpeccoUnitTests.........run only expecco related test cases'.
+        Stdout showCR:'--resultFile......................path to a file for storing the result as xml'.
+        Stdout showCR:'--forceTestCase...................class name of a test case (only this test case will be executed)'.
 
-	Smalltalk exit.
+        Smalltalk exit.
     ].
 
 
     index := cmdArgs indexOf:'--settingsFile'.
     index > 0 ifTrue:[
-	settingsFilePathName := cmdArgs at:index + 1.
-	self logInfo:'load settings file: ', settingsFilePathName printString.
-	settingsFilePathName asFilename fileIn.
-	self logInfo:'ParserFlags makeCommand: ', ParserFlags makeCommand printString.
+        settingsFilePathName := cmdArgs at:index + 1.
+        self logInfo:'load settings file: ', settingsFilePathName printString.
+        settingsFilePathName asFilename fileIn.
+        self logInfo:'ParserFlags makeCommand: ', ParserFlags makeCommand printString.
     ].
 
     (cmdArgs includes:'--runOnlyExpeccoUnitTests') ifTrue:[
-	self logInfo:'configured to run expecco unit tests only'.
-	doRunSpecificUnitTests := true.
-	unitTestSuiteName := 'expecco Unit Tests'.
-	excludedUnitTestClassNames := self excludedUnitTestClassNamesForExpecco.
+        self logInfo:'configured to run expecco unit tests only'.
+        doRunSpecificUnitTests := true.
+        unitTestSuiteName := 'expecco Unit Tests'.
+        excludedUnitTestClassNames := self excludedUnitTestClassNamesForExpecco.
     ].
 
     index := cmdArgs indexOf:'--resultFile'.
     index > 0 ifTrue:[
-	resultFilePathName := cmdArgs at:index + 1.
-	self logInfo:'set custom result file: ', resultFilePathName printString.
+        resultFilePathName := cmdArgs at:index + 1.
+        self logInfo:'set custom result file: ', resultFilePathName printString.
     ].
 
     index := cmdArgs indexOf:'--forceTestCase'.
     index > 0 ifTrue:[
-	forceTestCase := cmdArgs at:index + 1.
-	self logInfo:'set force test case: ', forceTestCase printString.
+        forceTestCase := cmdArgs at:index + 1.
+        self logInfo:'set force test case: ', forceTestCase printString.
     ].
 
     doRunSpecificUnitTests ifFalse:[
-	self logInfo:'configured to run all available unit tests'.
+        self logInfo:'configured to run all available unit tests'.
     ].
 
     self logInfo:'collecting unit test classes to run'.
     unitTestSuite := TestSuite named:unitTestSuiteName.
 
     (Smalltalk at: #'stx_goodies_regression') classNamesAndAttributes do:[:eachClassNameAndAttributes |
-	eachClassNameAndAttributes isSymbol ifTrue:[
-	    eachClassName := eachClassNameAndAttributes.
-	] ifFalse:[
-	    eachClassName := eachClassNameAndAttributes
-		firstIfEmpty:nil.
-	].
+        eachClassNameAndAttributes isSymbol ifTrue:[
+            eachClassName := eachClassNameAndAttributes.
+        ] ifFalse:[
+            eachClassName := eachClassNameAndAttributes
+                firstIfEmpty:nil.
+        ].
 
-	(excludedUnitTestClassNames includes:eachClassName) ifTrue:[
-	    self
-		logInfo:('excluded unit test class "%1".'
-		    bindWith:eachClassName).
-	] ifFalse:[
-	    (corruptedUnitTestClassNames includes:eachClassName) ifTrue:[
-		self
-		    logWarning:('corrupted unit test class detected, please fix #%1'
-			bindWith:eachClassName).
-	    ] ifFalse:[
-		(eachClassName notNil
-		and:[
-		    "/ skip non test case classes
-		    (#(
-			'stx_goodies_regression'
-		    ) includes:eachClassName) not
-		and:[
-		    forceTestCase isNil
-		    or:[forceTestCase = eachClassName
-		    or:[forceTestCase = ((eachClassName subStrings:'::') lastIfEmpty:nil)]]
-		]]) ifTrue:[
-		    eachClass := Smalltalk at:eachClassName.
+        (excludedUnitTestClassNames includes:eachClassName) ifTrue:[
+            self
+                logInfo:('excluded unit test class "%1".'
+                    bindWith:eachClassName).
+        ] ifFalse:[
+            (corruptedUnitTestClassNames includes:eachClassName) ifTrue:[
+                self
+                    logWarning:('corrupted unit test class detected, please fix #%1'
+                        bindWith:eachClassName).
+            ] ifFalse:[
+                (eachClassName notNil
+                and:[
+                    "/ skip non test case classes
+                    (#(
+                        'stx_goodies_regression'
+                    ) includes:eachClassName) not
+                and:[
+                    forceTestCase isNil
+                    or:[forceTestCase = eachClassName
+                    or:[forceTestCase = ((eachClassName subStrings:'::') lastIfEmpty:nil)]]
+                ]]) ifTrue:[
+                    eachClass := Smalltalk at:eachClassName.
 
-		    useCompiledUnitTestClasses ifFalse:[
-			"here we want test the jitter code
-			 therfor we file in, exit if the class is already present somwhow"
-			eachClass notNil ifTrue:[
-			    self
-				logWarning:('Unit test class "%1" was already present before file in.'
-				    bindWith:eachClassName).
+                    useCompiledUnitTestClasses ifFalse:[
+                        "here we want test the jitter code
+                         therfor we file in, exit if the class is already present somwhow"
+                        eachClass notNil ifTrue:[
+                            self
+                                logWarning:('Unit test class "%1" was already present before file in.'
+                                    bindWith:eachClassName).
 
-			    Smalltalk exit:1.
-			].
+                            Smalltalk exit:1.
+                        ].
 
-			eachClass := Smalltalk
-			    fileInClass:eachClassName
-			    package:'stx:goodies/regression'.
-		    ].
+                        eachClass := Smalltalk
+                            fileInClass:eachClassName
+                            package:'stx:goodies/regression'.
+                    ].
 
-		    eachClass notNil ifTrue:[
-			eachClass isTestCaseLike ifTrue:[
-			    self
-				logInfo:('added unit test class "%1".'
-				    bindWith:eachClassName).
+                    eachClass notNil ifTrue:[
+                        eachClass isTestCaseLike ifTrue:[
+                            self
+                                logInfo:('added unit test class "%1".'
+                                    bindWith:eachClassName).
 
-			    unitTestSuite addTest:eachClass suite.
-			].
-		    ] ifFalse:[
-			self
-			    logWarning:('unit test class "%1" is not loaded.'
-				bindWith:eachClassName).
-		    ].
-		] ifFalse:[
-		    self
-			logInfo:('skipped unit test class "%1".'
-			    bindWith:eachClassName).
-		].
-	    ].
-	].
+                            unitTestSuite addTest:eachClass suite.
+                        ].
+                    ] ifFalse:[
+                        self
+                            logWarning:('unit test class "%1" is not loaded.'
+                                bindWith:eachClassName).
+                    ].
+                ] ifFalse:[
+                    self
+                        logInfo:('skipped unit test class "%1".'
+                            bindWith:eachClassName).
+                ].
+            ].
+        ].
     ].
 
     self
-	logInfo:('%1 unit test classes collected'
-	    bindWith:unitTestSuite tests size).
+        logInfo:('%1 unit test classes collected'
+            bindWith:unitTestSuite tests size).
 
     self logInfo:'starting unit tests'.
     result := unitTestSuite
-	run:TestResultStX new
-	beforeEachDo:[:test | self logInfo:'performing unit test ', test printString]
-	afterEachDo:[:test| ]
-	debug:(cmdArgs includes:'--debug').
+        run:TestResultStX new
+        beforeEachDo:[:test | self logInfo:'performing unit test ', test printString]
+        afterEachDo:[:test| ]
+        debug:debug.
 
     self logInfo:'generating report'.
     TestResultReporter
-	report:result
-	format:#xml_jUnit
-	as:resultFilePathName ? 'testresult.xml'.
+        report:result
+        format:#xml_jUnit
+        as:resultFilePathName ? 'testresult.xml'.
 
     self logInfo:'summary:'.
     self logInfo:('%1 tests' bindWith:result runCount).
     self logInfo:('%1 passed' bindWith:result passedCount).
     self logInfo:('%1 failed' bindWith:result failureCount).
     self logInfo:('%1 errors' bindWith:result errorCount).
+
+    "
+        self
+            runWithCompiledUnitTestClasses:true
+            arguments:#('--runOnlyExpeccoUnitTests')
+            debug:true
+    "
 ! !
 
 !RunUnitTests class methodsFor:'constants'!
@@ -263,3 +284,4 @@
 version_CVS
     ^ '$Header$'
 ! !
+