On Thu, Mar 26, 2009 at 1:22 AM, Andreas Raab andreas.raab@gmx.de wrote:
SUnit will only use inherited test selectors if the superclass is declared as abstract. I find this horribly annoying but that's the way it is. You'll have to implement something like:
SuperTest class>>isAbstract ^self == SuperTest "NOT ^true since this makes subclasses abstract too"
See ToolBuilderTests and its subclasses for an example.
It doesn't work :( I tried it with my class and also with MVCToolBuilderTests. In both cases I get this wallback:
any ideas?
thanks for the help.
mariano
MessageNotUnderstood: DBXMainBackendTestPostgresql class>>allSelectorsBelow: 26 March 2009 1:28:40 am
VM: unix - a SmalltalkImage Image: Squeak3.10.2 [latest update: #7179]
SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir /home/mariano/squeak/imagenes Trusted Dir /home/mariano/squeak/imagenes/secure Untrusted Dir /home/mariano/squeak/imagenes/My Squeak
DBXMainBackendTestPostgresql class(Object)>>doesNotUnderstand: #allSelectorsBelow: Receiver: DBXMainBackendTestPostgresql Arguments and temporary variables: aMessage: allSelectorsBelow: TestCase Receiver's instance variables: superclass: DBXMainBackendTest methodDict: a MethodDictionary(#facilityToTest->a CompiledMethod (1970) ) format: 132 instanceVariables: nil organization: ('facility' facilityToTest)
subclasses: nil name: #DBXMainBackendTestPostgresql classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'OpenDBX-Core-Tests' traitComposition: nil localSelectors: nil
DBXMainBackendTestPostgresql class(TestCase class)>>withInheritedSelectors Receiver: DBXMainBackendTestPostgresql Arguments and temporary variables:
Receiver's instance variables: superclass: DBXMainBackendTest methodDict: a MethodDictionary(#facilityToTest->a CompiledMethod (1970) ) format: 132 instanceVariables: nil organization: ('facility' facilityToTest)
subclasses: nil name: #DBXMainBackendTestPostgresql classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'OpenDBX-Core-Tests' traitComposition: nil localSelectors: nil
DBXMainBackendTestPostgresql class(TestCase class)>>testsSelect: Receiver: DBXMainBackendTestPostgresql Arguments and temporary variables: aBlock: [] in DBXMainBackendTestPostgresql class(TestCase class)>>suiteWithSele...etc... selector: nil s: nil Receiver's instance variables: superclass: DBXMainBackendTest methodDict: a MethodDictionary(#facilityToTest->a CompiledMethod (1970) ) format: 132 instanceVariables: nil organization: ('facility' facilityToTest)
subclasses: nil name: #DBXMainBackendTestPostgresql classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'OpenDBX-Core-Tests' traitComposition: nil localSelectors: nil
[] in DBXMainBackendTestPostgresql class(TestCase class)>>suiteWithSelectorsMatching: {[:testClass | suite addTests: (testClass testsSelect: [:sel | pattern ...]} Arguments and temporary variables: pattern: 'test*' suite: a TestSuite testClass: DBXMainBackendTestPostgresql sel: nil
--- The full stack --- DBXMainBackendTestPostgresql class(Object)>>doesNotUnderstand: #allSelectorsBelow: DBXMainBackendTestPostgresql class(TestCase class)>>withInheritedSelectors DBXMainBackendTestPostgresql class(TestCase class)>>testsSelect: [] in DBXMainBackendTestPostgresql class(TestCase class)>>suiteWithSelectorsMatching: {[:testClass | suite addTests: (testClass testsSelect: [:sel | pattern ...]} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Array(SequenceableCollection)>>do: [] in DBXMainBackendTestPostgresql class(TestCase class)>>suiteWithSelectorsMatching: {[:suite | self theClasses do: [:testClass | suite addTests: (testClass...]} TestSuite(Object)>>in: TestSuite class>>define: DBXMainBackendTestPostgresql class(TestCase class)>>suiteWithSelectorsMatching: DBXMainBackendTestPostgresql class(TestCase class)>>allStandardTests DBXMainBackendTestPostgresql class(TestCase class)>>suite: [] in TestSuite>>fromClasses:suites:select:reject: {[:suite | self addTests: (testClass suite: suite) tests]} Set>>do: [] in TestSuite>>fromClasses:suites:select:reject: {[:testClass | suites do: [:suite | self addTests: (testClass suite: suite...]} Set>>do: TestSuite>>fromClasses:suites:select:reject: TestSuite class>>classes:suites:select:reject: TestRunner>>suiteAll TestRunner>>runAll PluggableButtonMorphPlus(PluggableButtonMorph)>>performAction PluggableButtonMorphPlus>>performAction [] in PluggableButtonMorphPlus(PluggableButtonMorph)>>mouseUp: {[:m | (m containsPoint: evt cursorPoint) ifTrue: [m performAction]]} Array(SequenceableCollection)>>do: PluggableButtonMorphPlus(PluggableButtonMorph)>>mouseUp: PluggableButtonMorphPlus>>mouseUp: ...etc...
Cheers,
- Andreas
Mariano Martinez Peck wrote:
Hi everybody:
I am having a problem with Sunit on Squeak. I have a class called A and has a testXXX method (method that should be executed by sunit). I have class B that inherits from A and has no test method (method that should be run by sunit). When I want to run the tests of B (from Test Runner) I notice that testXXX is not run. I mean, zero runs for class B. I think this is incorrect. Am I ok ? Should testXXX be executed in this case ?
Thanks for the help.
Mariano