reports/Builder__TestReportFormat.st
branchjv
changeset 323 8ec01ca33d6e
parent 303 e217bb7aacf4
parent 319 f525a38861f1
child 334 a7f6c7bc62a8
equal deleted inserted replaced
322:9ec2abb1218e 323:8ec01ca33d6e
   301 !
   301 !
   302 
   302 
   303 writeTestCase:testcase outcome:outcome time:time exception: exception stacktrace:stacktrace
   303 writeTestCase:testcase outcome:outcome time:time exception: exception stacktrace:stacktrace
   304     | result |
   304     | result |
   305 
   305 
   306     outcome result == TestResult statePass ifTrue:[ 
   306     outcome result == TestResult statePass ifTrue:[
   307         result := #pass.
   307         result := #pass.
   308     ] ifFalse:[ 
   308     ] ifFalse:[
   309         outcome result == TestResult stateFail ifTrue:[ 
   309         outcome result == TestResult stateFail ifTrue:[
   310             result := #failure.
   310             result := #failure.
   311             failures := failures + 1
   311             failures := failures + 1
   312         ] ifFalse:[ 
   312         ] ifFalse:[
   313             outcome result == TestResult stateError ifTrue:[ 
   313             outcome result == TestResult stateError ifTrue:[
   314                 result := #error.
   314                 result := #error.
   315                 errors := errors + 1.
   315                 errors := errors + 1.
   316             ] ifFalse:[ 
   316             ] ifFalse:[
   317                 outcome result == TestResult stateSkip ifTrue:[ 
   317                 outcome result == TestResult stateSkip ifTrue:[
   318                     result := #skip.
   318                     result := #skip.
   319                     skipped := skipped + 1
   319                     skipped := skipped + 1
   320                 ] ifFalse:[
   320                 ] ifFalse:[
   321                     self error: 'Invalid test result'.
   321                     self error: 'Invalid test result'.
   322                 ]
   322                 ]
   323             ].
   323             ].
   324         ].
   324         ].
   325     ].
   325     ].
   326 
   326 
   327     stream tab; 
   327     stream tab;
   328             nextPutAll: '<testcase classname="'; 
   328             nextPutAll: '<testcase classname="';
   329             nextPutAll: (self encode: testcase nameForHDTestReport); 
   329             nextPutAll: (self encode: testcase nameForHDTestReport);
   330             nextPutAll: '" name="'; 
   330             nextPutAll: '" name="';
   331             nextPutAll: (self encode: testcase selectorForHDTestReport); 
   331             nextPutAll: (self encode: testcase selectorForHDTestReport);
   332             nextPutAll: '" time="'; print: (time ? 0) / 1000.0; nextPutAll: '">'; cr.
   332             nextPutAll: '" time="'; print: (time ? 0) / 1000.0; nextPutAll: '">'; cr.
   333 
   333 
   334     result == #skip ifTrue:[
   334     result == #skip ifTrue:[
   335         stream tab; tab; nextPutAll: '<skipped/>'.
   335         stream tab; tab; nextPutAll: '<skipped/>'.
   336     ] ifFalse:[
   336     ] ifFalse:[
   337         result ~~ #pass ifTrue:[
   337         result ~~ #pass ifTrue:[
   338             | type message |
   338             | type message |
   339 
   339 
   340             exception isNil ifTrue:[
   340             exception isNil ifTrue:[
   341                 type := 'unknown exception'.
   341                 type := 'unknown exception'.
   342                 message := 'unknown exception occured (no exception details available)'
   342                 message := 'unknown exception occurred (no exception details available)'
   343             ] ifFalse:[
   343             ] ifFalse:[
   344                 type := exception class name.
   344                 type := exception class name.
   345                 message := exception messageText ifNil:[ exception description ].
   345                 message := exception messageText ifNil:[ exception description ].
   346             ].
   346             ].
   347             
   347 
   348 
   348 
   349             stream tab; tab;
   349             stream tab; tab;
   350                 nextPut:$<; nextPutAll: result;
   350                 nextPut:$<; nextPutAll: result;
   351                 nextPutAll:' type="';
   351                 nextPutAll:' type="';
   352                 nextPutAll:(self encode:type);
   352                 nextPutAll:(self encode:type);
   362     report keepStdout ifTrue:[
   362     report keepStdout ifTrue:[
   363         outcome collectedOutput notEmptyOrNil ifTrue:[
   363         outcome collectedOutput notEmptyOrNil ifTrue:[
   364             stream nextPutAll:'    <system-out><!![CDATA['; cr.
   364             stream nextPutAll:'    <system-out><!![CDATA['; cr.
   365             self writeCDATA: outcome collectedOutput.
   365             self writeCDATA: outcome collectedOutput.
   366             stream nextPutAll:']]> </system-out>'; cr.
   366             stream nextPutAll:']]> </system-out>'; cr.
   367         ].   
   367         ].
   368     ].
   368     ].
   369 
   369 
   370     stream tab; 
   370     stream tab;
   371             nextPutAll: '</testcase>'; cr.
   371             nextPutAll: '</testcase>'; cr.
   372 
   372 
   373 
   373 
   374     stream flush
   374     stream flush
   375 
   375