reports/Builder__TestReportFormat.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 24 Aug 2018 11:23:42 +0100
branchjv
changeset 528 67d1c7df7f90
parent 334 a7f6c7bc62a8
child 564 089cc2fa6c6c
permissions -rw-r--r--
Refactor timeout scaling factor initialization In order to stabilize tests on (heavily loaded) CI infrastructure, reasses scaling factor every three minutes. Also include (simple) I/O benchmark to compensate for (overloaded) I/O subsystem of CI slaves. For details, see `Builder::TestReport::Result >> timeoutScale`
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/builder/reports' }"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Builder }"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
ReportFormat subclass:#TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Builder-Reports-Formats'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
TestReportFormat subclass:#JUnit
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    13
	instanceVariableNames:'position failures errors skipped startTime stopTime'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	privateIn:TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
TestReportFormat subclass:#PerfPublisher
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
	instanceVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
	privateIn:TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
TestReportFormat subclass:#PythonUnittest
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	instanceVariableNames:'index'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	privateIn:TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
TestReportFormat subclass:#TAP
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
	instanceVariableNames:'index'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
	privateIn:TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
!TestReportFormat class methodsFor:'testing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
isAbstract
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    ^self == TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "Created: / 04-08-2011 / 11:44:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
!TestReportFormat methodsFor:'accessing - defaults'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
defaultFileSuffix
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    "superclass HDReportFormat says that I am responsible to implement this method"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    ^ 'xml'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    "Modified: / 04-08-2011 / 12:48:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
!TestReportFormat methodsFor:'writing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
writeTestCase: testcase outcome: outcome time: time exception: exception
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    | stacktrace |
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    exception isNil ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
        stacktrace := nil.        
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    ] ifFalse:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
        stacktrace :=
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
            (String streamContents:[:s|
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
                self writeStackTrace: exception of: testcase on: s
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
            ])
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    ^self writeTestCase: testcase outcome: outcome time: time exception: exception 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
             stacktrace: stacktrace
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    "Created: / 03-08-2011 / 19:44:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
writeTestCase: testcase outcome: outcome time: time exception: exception stacktrace: stacktrace
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    "Write an outcome of a given test.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
     Argumments:
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    84
        testcase....the testcase <TestCase>
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    85
        outcome.....the testcase outcome <TestCaseOutcome>
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
        time........time taken to run the test in milliseconds
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    87
        exception...exception that caused error/failure or nil if N/A < Exception | nil >
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    88
        backtrace...stacktrace info or nil if N/A <String | nil >"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    self subclassResponsibility
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    "Created: / 03-08-2011 / 19:43:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    93
    "Modified (comment): / 06-06-2014 / 00:51:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
!TestReportFormat methodsFor:'writing - utilities'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
writeContext: context on: s
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
296
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   100
    |home mthd src vars args argAndVarNames |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    [
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    context printOn: s.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
    s cr.
86
29a8a74674f5 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
   104
    s nextPutAll:'receiver: '. context receiver printOn: s. s cr.
296
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   105
    s nextPutAll:'selector: '. context selector storeOn: s. s cr.
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   106
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   107
    args := context args.
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   108
    vars := context vars.
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   109
    argAndVarNames := context argAndVarNames.
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    s nextPutAll:'args: '; cr.
296
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   111
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   112
    args keysAndValuesDo:[:idx :eachArg |
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   113
        s nextPutAll:'  '. idx printOn: s leftPaddedTo:2 . s space. (argAndVarNames at: idx ifAbsent:['']) printOn: s paddedTo:12. s nextPutAll:': '. eachArg printOn: s.s cr.
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    s nextPutAll:'vars: '; cr.
296
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   116
    vars keysAndValuesDo:[:idx :eachVar |
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   117
        s nextPutAll:'  '. idx printOn: s leftPaddedTo:2. s space. (argAndVarNames at: idx + args size ifAbsent:['']) printOn: s paddedTo:12. s nextPutAll:': '. 
91
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   118
        eachVar isString ifTrue:[
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   119
            eachVar storeOn: s.
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   120
        ] ifFalse:[
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   121
            eachVar printOn: s.
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   122
        ].
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   123
        s cr.
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    ].
296
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   125
    home := context methodHome.
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   126
    mthd := home method.  
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   127
303
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   128
    report keepBytecode ifTrue:[
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   129
        s nextPutAll:'bytecode: '; cr.    
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   130
        mthd notNil ifTrue:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   131
            (mthd isJavaMethod and:[mthd class ~~ JavaNativeMethod]) ifFalse:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   132
                Decompiler decompile: mthd to: s.
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   133
            ] ifTrue:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   134
                (Smalltalk at: #JavaByteCodeDisassembler) notNil ifTrue:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   135
                    (Smalltalk at: #JavaByteCodeDisassembler) diassemble: mthd to: s.
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   136
                ] ifFalse:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   137
                    s nextPutAll: ' ** no JavaByteCodeDisassembler **'  
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   138
                ].
296
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   139
            ].
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   140
        ].
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   141
    ].
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   142
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   143
    s cr.
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    s nextPutAll:'source: '; cr.    
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    [
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    mthd isNil ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
         s nextPutAll: '** no source **'. s cr. s cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
        ^ self.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    src := mthd source.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    src isNil ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
        s nextPutAll: '** no source **'. s cr. s cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
        ^ self.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    ] on: Error do:[:ex|
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
        s 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
            nextPutAll: '** error when getting source: ';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
            nextPutAll:  ex description;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
            nextPutAll: '**';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
            cr; cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
        ^ self.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
    src := src asCollectionOfLines.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
    src keysAndValuesDo:[:lNr :line |
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
        lNr == context lineNumber ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
            s nextPutAll:'>> '.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
        ] ifFalse:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
            s nextPutAll:'   '.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
        ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
        s nextPutAll: line; cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
    s cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    ] on: Error do:[:ex|
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
        s   cr;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
            nextPutAll:'!!!!!!ERROR WHEN GETTING STACK TRACE!!!!!!'; cr;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
            nextPutAll: ex description; cr
296
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   177
    ]. 
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   178
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   179
    "
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   180
    String streamContents:[ :s | Builder::TestReportFormat basicNew writeContext: thisContext on: s ]
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   181
    "
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
    "Created: / 03-08-2011 / 14:53:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
303
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   184
    "Modified: / 15-03-2016 / 14:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
writeStackTrace:err of:aTestCase on: str
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
303
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   189
    | context |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
    context := err signalerContext.
91
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   192
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   193
    [ context notNil ] whileTrue:[
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   194
        self writeContext: context on: str.
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   195
        str cr; cr.
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   196
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   197
        context receiver == aTestCase ifTrue:[
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   198
            context selector == aTestCase selector ifTrue:[ ^ self ].
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   199
            context selector == #setUp ifTrue:[ ^ self ].
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   200
        ].
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   201
        context := context sender.
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   202
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   203
    ].
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
    "Created: / 03-08-2011 / 14:53:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
303
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   206
    "Modified: / 15-03-2016 / 14:33:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
!TestReportFormat::JUnit class methodsFor:'accessing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
symbolicNames
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
    ^ #( #junit #junit40 )
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
    "Created: / 04-08-2011 / 11:45:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
!TestReportFormat::JUnit class methodsFor:'documentation'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   220
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
!TestReportFormat::JUnit methodsFor:'initialization'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
initialize
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
    super initialize.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    errors := 0.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
    failures := 0.
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   230
    skipped := 0.
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    "Created: / 03-08-2011 / 15:26:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   233
    "Modified: / 21-11-2012 / 15:33:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
!TestReportFormat::JUnit methodsFor:'writing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
writeFooter
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
    stopTime := OperatingSystem getMillisecondTime.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
        tab;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
        nextPutAll:'<system-out><!![CDATA[]]></system-out>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
        nextPut:Character lf.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
        tab;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
        nextPutAll:'<system-err><!![CDATA[]]></system-err>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
        nextPut:Character lf.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
    stream nextPutAll:'</testsuite>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
    stream stream position:position.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
        nextPutAll:' failures="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
        print:failures;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
        nextPutAll:'" errors="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
        print:errors;
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   255
        nextPutAll:'" skipped="';
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   256
        print:skipped;
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
        nextPutAll:'" time="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
        print:(Time milliseconds:stopTime since:startTime) / 1000.0;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
        nextPutAll:'">'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
    stream close.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
    "Created: / 03-08-2011 / 14:22:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   263
    "Modified: / 21-11-2012 / 15:34:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
writeHeader
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
        nextPutAll:'<?xml version="1.0" encoding="UTF-8"?>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
        nextPut:Character lf.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
        nextPutAll:'<testsuite name="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
        nextPutAll:(Report encode:report name);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
        nextPutAll:'" tests="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
        print:report suite testCount;
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   275
        nextPutAll:('" hostname="%1"' bindWith:OperatingSystem getHostName);
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   276
        nextPutAll:'>'.
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
     "Now this is ugly. We want to update the time and the number of failures and errors, but still at the same time stream a valid XML. So remember this position and add some whitespace, that we can fill later."
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
    position := stream stream position - 1.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
        nextPutAll:(String new:100 withAll:$ );
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
        nextPut:Character lf.
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   282
    stream
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   283
        nextPutLine: '  <properties>';
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   284
        nextPutLine: '    <property name="programmingLanguage" value="Smalltalk" />';
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   285
        nextPutLine: '    <property name="smalltalk.vendor" value="exept Software AG" />';
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   286
        nextPutLine: '    <property name="smalltalk.compiler" value="Smalltalk/X" />';
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   287
        nextPutLine:('    <property name="smalltalk.version" value="%1" />'bindWith:Smalltalk versionString);
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   288
        nextPutLine:('    <property name="os.name" value="%1" />' bindWith:OperatingSystem osName);
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   289
        nextPutLine:('    <property name="os.arch" value="%1" />' bindWith:OperatingSystem getCPUType);
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   290
        nextPutLine:('    <property name="user.name" value="%1" />' bindWith:OperatingSystem getLoginName);
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   291
        nextPutLine:('    <property name="user.language" value="%1" />' bindWith:Smalltalk language).
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   292
"/    stream
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   293
"/        nextPutLine:('    <property name="smalltalk.libbasic.version" value="%1" />'bindWith:stx_libbasic versionString).
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   294
    stream
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   295
        nextPutLine: '  </properties>'.       
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   296
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
    startTime := OperatingSystem getMillisecondTime.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
    "Created: / 03-08-2011 / 19:14:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   300
    "Modified: / 06-06-2014 / 01:14:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
writeTestCase:testcase outcome:outcome time:time exception: exception stacktrace:stacktrace
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   304
    | result |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   306
    outcome result == TestResult statePass ifTrue:[
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   307
        result := #pass.
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   308
    ] ifFalse:[
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   309
        outcome result == TestResult stateFail ifTrue:[
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   310
            result := #failure.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   311
            failures := failures + 1
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   312
        ] ifFalse:[
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   313
            outcome result == TestResult stateError ifTrue:[
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   314
                result := #error.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   315
                errors := errors + 1.
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   316
            ] ifFalse:[
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   317
                outcome result == TestResult stateSkip ifTrue:[
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   318
                    result := #skip.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   319
                    skipped := skipped + 1
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   320
                ] ifFalse:[
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   321
                    self error: 'Invalid test result'.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   322
                ]
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   323
            ].
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   324
        ].
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   325
    ].
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   327
    stream tab;
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   328
            nextPutAll: '<testcase classname="';
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   329
            nextPutAll: (self encode: testcase nameForHDTestReport);
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   330
            nextPutAll: '" name="';
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   331
            nextPutAll: (self encode: testcase selectorForHDTestReport);
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
            nextPutAll: '" time="'; print: (time ? 0) / 1000.0; nextPutAll: '">'; cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   334
    result == #skip ifTrue:[
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   335
        stream tab; tab; nextPutAll: '<skipped/>'.
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   336
    ] ifFalse:[
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   337
        result ~~ #pass ifTrue:[
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   338
            | type message |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   340
            exception isNil ifTrue:[
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   341
                type := 'unknown exception'.
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   342
                message := 'unknown exception occurred (no exception details available)'
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   343
            ] ifFalse:[
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   344
                type := exception class name.
334
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   345
                message := exception messageText notNil ifTrue:[ exception description ] ifFalse:[ 'no exception'].
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   346
            ].
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   347
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   349
            stream tab; tab;
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   350
                nextPut:$<; nextPutAll: result;
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   351
                nextPutAll:' type="';
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   352
                nextPutAll:(self encode:type);
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   353
                nextPutAll:'" message="';
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   354
                nextPutAll:(self encode: message);
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   355
                nextPutAll:'"><!![CDATA['; cr.
334
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   356
            "/ Write system identification here so one can tell on which system                     
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   357
            "/ it failed. Jenkins JUnit plugin infortunately does not show this
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   358
            "/ info in it's own UI
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   359
            self writeCDATA: ('Hostname: ' , OperatingSystem getHostName , Character cr).
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   360
            self writeCDATA: ('OS:       ' , OperatingSystem osName , Character cr).
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   361
            self writeCDATA: ('Arch:     ' , OperatingSystem getCPUType , Character cr, Character cr).
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   362
                
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   363
            self writeCDATA: (stacktrace ? 'stacktrace not available').
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   364
            stream
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   365
                nextPutAll:']]></'; nextPutAll: result; nextPutAll:'>';
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   366
                nextPut:Character lf
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   367
        ].
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
    ].
242
d9479f1e61fa Added option --keep-stdout to TestReport to include stdout contents in reports.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 235
diff changeset
   369
    report keepStdout ifTrue:[
d9479f1e61fa Added option --keep-stdout to TestReport to include stdout contents in reports.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 235
diff changeset
   370
        outcome collectedOutput notEmptyOrNil ifTrue:[
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   371
            stream nextPutAll:'    <system-out><!![CDATA['; cr.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   372
            self writeCDATA: outcome collectedOutput.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   373
            stream nextPutAll:']]> </system-out>'; cr.
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   374
        ].
242
d9479f1e61fa Added option --keep-stdout to TestReport to include stdout contents in reports.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 235
diff changeset
   375
    ].
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   376
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   377
    stream tab;
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
            nextPutAll: '</testcase>'; cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
    stream flush
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
    "Created: / 03-08-2011 / 19:42:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
334
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   384
    "Modified: / 19-08-2017 / 14:38:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   385
! !
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   386
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   387
!TestReportFormat::JUnit methodsFor:'writing - utilities'!
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   388
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   389
writeCDATA: string
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   390
    | start stop |
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   391
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   392
    start := 1. 
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   393
    stop := start.
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   394
    [ (stop := (string indexOf: $] startingAt: stop)) ~~ 0 ] whileTrue:[
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   395
        ((stop < (string size - 1)) 
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   396
            and:[(string at: stop + 1) == $]
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   397
                and:[(string at: stop + 2) == $>]]) ifTrue:[
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   398
                    " Okay, found CDATA end token "
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   399
                    stream nextPutAll: string startingAt: start to: stop + 1.
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   400
                    stream nextPutAll: ']]><!![CDATA[>'.
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   401
                    start := stop := stop + 3.
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   402
                ] ifFalse:[
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   403
                    stop := stop + 1.
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   404
                ].
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   405
    ].
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   406
    start < string size ifTrue:[
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   407
        stream nextPutAll: string startingAt: start to: string size.        
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   408
    ].
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   409
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   410
    "
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   411
    String streamContents:[:s | Builder::TestReportFormat::JUnit new report: nil stream: s; writeCDATA:'ABCD']
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   412
    String streamContents:[:s | Builder::TestReportFormat::JUnit new report: nil stream: s; writeCDATA:']]]]']         
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   413
    String streamContents:[:s | Builder::TestReportFormat::JUnit new report: nil stream: s; writeCDATA:'Some <[CDATA[ CDATA ]]> Some Text and stray terminator ]]> here']
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   414
    "
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   415
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   416
    "Created: / 05-07-2013 / 16:54:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
!TestReportFormat::PerfPublisher class methodsFor:'accessing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   420
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   421
symbolicNames
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   422
    "Returns a collection of symbolic names for this format"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   423
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   424
    ^ #(perfPublisher)
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   425
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   426
    "Modified: / 04-08-2011 / 11:52:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   427
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   428
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   429
!TestReportFormat::PerfPublisher class methodsFor:'documentation'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   430
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   431
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   432
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   433
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   434
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   435
!TestReportFormat::PerfPublisher methodsFor:'writing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   436
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   437
writeFooter
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   438
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   439
    stream nextPutLine: '</report>'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   440
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   441
    "Modified: / 03-08-2011 / 20:12:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   442
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   443
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   444
writeHeader
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   445
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   446
    |reportName reportCategory testClass|
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   447
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   448
    reportName := report suite name.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   449
    reportCategory := 'uncategorized'.  "/ it is a required attribute; so what should we use ?
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   450
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   451
    (testClass := Smalltalk at:reportName asSymbol) isBehavior ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   452
        reportCategory := testClass category.  "/ at least, something to show
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   453
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   454
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   455
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
        nextPutLine: '<?xml version="1.0"?>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   457
        nextPutLine:('<report name="%1" categ="%2">' bindWith:reportName with:reportCategory);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   458
        nextPutLine:('  <start>');
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   459
        nextPutLine:('    <date format="YYYYMMDD" val="%1" />' bindWith:(Date today printStringFormat:'%y%m%d'));
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   460
        nextPutLine:('    <time format="HHMMSS" val="%1" />' bindWith:(Time now printStringFormat:'%h%m%s'));
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   461
        nextPutLine:('  </start>').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   462
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   463
    "Modified: / 03-08-2011 / 20:12:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   464
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   465
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   466
writeTestCase:testcase outcome:outcome time:time exception:exception stacktrace:stacktrace
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   467
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   468
    "
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   469
    Example:
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   470
    <test
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   471
        name='test_format_link_not_in_repos_with_line'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   472
        executed='exec-status'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   473
      <result>  
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   474
        <success passed='result-status' state='result-state'/>
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   475
        <errorlog><!![CDATA[EXEMPLE OF ERROR LOG]]></errorlog>
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   476
      </result>  
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   477
    </test>  
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   478
    "
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   479
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   480
    |testClassName executionTime testName testDescription 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   481
     successPassed successState exceptionInfo
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   482
     compilerName compilerVersion compilerConfiguration compilerVersionDate 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   483
     timeUnit timeMeasure 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   484
     sysInfo osType osVersion cpuType|
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   485
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   486
    testClassName := testcase printString.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   487
    testName := testcase selector.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   488
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   489
    "most tests do not know, and return nil here!!"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   490
    executionTime := time.    "/ millis
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   491
    testDescription := '%1-%2' bindWith:testClassName with:testName.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   492
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   493
    successPassed := (outcome result == TestResult statePass) ifTrue:['yes'] ifFalse:['no'].
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   494
    (outcome result ~~ TestResult statePass) ifTrue:[
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   495
        exceptionInfo := stacktrace ? 'No stacktrace available'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   496
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   497
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   498
    successState := 'foo'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   499
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   500
    "/ caveat: the following needs to be made dialect-specific
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   501
    compilerName := 'Smalltalk/X'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   502
    compilerVersion := Smalltalk versionString.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   503
    compilerConfiguration := Smalltalk configuration.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   504
    compilerVersionDate := Smalltalk versionDate.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   505
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   506
    sysInfo := OperatingSystem getSystemInfo.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   507
    osType := (sysInfo at:#osType ifAbsent:'?').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   508
    osVersion := (sysInfo at:#release ifAbsent:'?').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   509
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   510
    cpuType := (sysInfo at:#cpuType ifAbsent:'?').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   511
    "/ cpuSpeed := (sysInfo at:#cpuSpeed ifAbsent:'?').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   512
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   513
    timeUnit := 'ms'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   514
    timeMeasure := executionTime.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   515
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   516
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   517
        nextPutLine:('<test name="%1" executed="yes">' bindWith: testName);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   518
        nextPutLine:('  <description><!![CDATA[%1]]></description>' bindWith: testDescription);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   519
        nextPutLine:'  <platform>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   520
        nextPutLine:'    <os>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   521
        nextPutLine:('      <type><!![CDATA[%1]]></type>' bindWith:osType);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   522
        nextPutLine:('      <version><!![CDATA[%1]]></version>' bindWith:osVersion);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   523
        nextPutLine:'    </os>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   524
        nextPutLine:('    <processor arch="%1">' bindWith:cpuType);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   525
        "/ nextPutLine:('      <frequency> unit="Mhz" cpufreq="%1" />' bindWith:cpuSpeed);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   526
        nextPutLine:'    </processor>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   527
        nextPutLine:('    <compiler name="%1" version="%2" versiondate="%3" configuration="%4" />' 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   528
                            bindWith:compilerName with:compilerVersion 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   529
                            with:compilerVersionDate with:compilerConfiguration);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   530
        "/ nextPutLine:'    <environment />';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   531
        nextPutLine:'  </platform>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   532
        nextPutLine:'  <result>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   533
        nextPutLine:('    <success passed="%1" state="100" />' 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   534
                            bindWith:successPassed with:successState);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   535
        "/ cg: in the perfPublisher documentation, I found "mesure".
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   536
        "/ I am not sure, if that was a typo, or is actually what is expected...
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   537
        "/ to be on the save side, I generate both a mesure and a measure attribute,
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   538
        "/ so it will work, even if they ever fix perfPublisher's xml parser.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   539
        nextPutLine:('    <executiontime unit="%1" mesure="%2" measure="%2" isRelevant="yes" />' 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   540
                            bindWith:timeUnit with:timeMeasure).
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   541
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   542
    exceptionInfo notNil ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   543
        stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   544
            nextPutLine:'    <errorlog><!![CDATA[';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   545
            nextPutAll:exceptionInfo;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   546
            nextPutLine:']]></errorlog>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   547
        ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   548
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   549
        nextPutLine:'  </result>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   550
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   551
    stream nextPutLine:'</test>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   552
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   553
    "Modified: / 06-06-2014 / 00:47:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   554
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   555
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   556
!TestReportFormat::PythonUnittest class methodsFor:'accessing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   557
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   558
symbolicNames
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   559
    "Returns a collection of symbolic names for this format"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   560
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   561
    ^ #(python python-unittest)
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   562
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   563
    "Modified: / 04-08-2011 / 11:52:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   564
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   565
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   566
!TestReportFormat::PythonUnittest class methodsFor:'documentation'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   567
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   568
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   569
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   570
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   571
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   572
!TestReportFormat::PythonUnittest methodsFor:'writing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   573
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   574
writeFooter
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   575
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   576
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   577
        nextPutLine: '</unittest-results>'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   578
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   579
    "Modified: / 03-08-2011 / 20:19:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   580
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   581
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   582
writeHeader
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   583
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   584
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   585
        nextPutLine: '<?xml version="1.0"?>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   586
        nextPutLine: '<unittest-results>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   587
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   588
    "Modified: / 03-08-2011 / 20:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   589
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   590
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   591
writeTestCase:testcase outcome:outcome time:time exception:exception stacktrace:stacktrace
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   592
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   593
    "
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   594
    Example:
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   595
    <test
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   596
        duration='0.0188629627228'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   597
        status='error'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   598
        fixture='bitten.tests.web_ui.SourceFileLinkFormatterTestCase'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   599
        name='test_format_link_not_in_repos_with_line'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   600
        file='/usr/src/trac-bitten-0.6b2.dfsg/bitten/tests/web_ui.py'>
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   601
    "
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   602
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   603
    | testClassName result |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   604
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   605
    testClassName := testcase class printString.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   606
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   607
    outcome result == TestResult statePass ifTrue:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   608
        result := #success.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   609
    ] ifFalse:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   610
        outcome result == TestResult stateFail ifTrue:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   611
            result := #failure.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   612
        ] ifFalse:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   613
            outcome result == TestResult stateError ifTrue:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   614
                result := #error.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   615
            ] ifFalse:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   616
                outcome result == TestResult stateSkip ifTrue:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   617
                    result := #skip.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   618
                ] ifFalse:[
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   619
                    self error: 'Invalid test result'.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   620
                ]
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   621
            ].
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   622
        ].
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   623
    ].    
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   624
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   625
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   626
        nextPutAll:'<test duration="'; nextPutAll:time; nextPutLine:'"'; 
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   627
        tab; nextPutAll:'status="'; nextPutAll: result; nextPutLine:'"';
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   628
        tab; nextPutAll:'ficture="'; nextPutAll: testClassName; nextPutLine:'"';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   629
        tab; nextPutAll:'name="'; nextPutAll: testcase selector; nextPutLine:'"';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   630
        "It seems that some tools requires the file attributes. So we supply one :-)"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   631
        tab; nextPutAll:'file="'; nextPutAll: testClassName , '.st'; nextPutLine:'">'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   632
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   633
    outcome == #pass ifFalse:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   634
        stream nextPutLine:'<traceback><!![CDATA['.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   635
        stream nextPutAll: stacktrace ? 'No stacktrace available'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   636
        stream nextPutLine:']]></traceback>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   637
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   638
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   639
    stream nextPutLine:'</test>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   640
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   641
    "Modified: / 06-06-2014 / 00:50:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   642
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   643
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   644
!TestReportFormat::TAP class methodsFor:'accessing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   645
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   646
symbolicNames
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   647
    "Returns a collection of symbolic names for this format"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   648
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   649
    ^ #(tap TAP)
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   650
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   651
    "Modified: / 04-08-2011 / 11:52:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   652
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   653
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   654
!TestReportFormat::TAP class methodsFor:'documentation'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   655
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   656
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   657
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   658
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   659
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   660
!TestReportFormat::TAP methodsFor:'accessing - defaults'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   661
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   662
defaultFileSuffix
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   663
    "superclass HDReportFormat says that I am responsible to implement this method"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   664
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   665
    ^ 'tap'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   666
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   667
    "Modified: / 04-08-2011 / 12:47:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   668
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   669
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   670
!TestReportFormat::TAP methodsFor:'writing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   671
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   672
writeFooter
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   673
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   674
    "nothing to do"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   675
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   676
    "Modified: / 03-08-2011 / 20:05:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   677
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   678
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   679
writeHeader
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   680
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   681
    stream nextPutAll: '1..'; nextPutAll: report suite testCount printString; cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   682
    index := 0
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   683
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   684
    "Modified: / 04-08-2011 / 13:49:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   685
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   686
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   687
writeTestCase:testcase outcome:outcome time:time exception:exception stacktrace:stacktrace
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   688
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   689
    | result testDescription statusString |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   690
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   691
    index := index + 1.
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   692
    outcome result == TestResult statePass ifTrue:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   693
        result := #pass.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   694
    ] ifFalse:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   695
        outcome result == TestResult stateFail ifTrue:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   696
            result := #failure.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   697
        ] ifFalse:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   698
            outcome result == TestResult stateError ifTrue:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   699
                result := #error.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   700
            ] ifFalse:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   701
                outcome result == TestResult stateSkip ifTrue:[ 
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   702
                    result := #skip.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   703
                ] ifFalse:[
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   704
                    self error: 'Invalid test result'.
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   705
                ]
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   706
            ].
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   707
        ].
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   708
    ].    
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   709
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   710
    testDescription := '%1-%2 (%3ms)'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   711
                            bindWith:testcase printString
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   712
                            with:testcase selector
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   713
                            with:time.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   714
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   715
    statusString := (result == #pass)
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   716
                        ifTrue:['ok']
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   717
                        ifFalse:['not ok'].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   718
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   719
    stream nextPutLine:('%1 %2 - %3'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   720
                            bindWith:statusString
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   721
                            with:index
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   722
                            with:testDescription).
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   723
235
3769ae14139a When running SUnit tests, capture and log stdout, stderr and Transcript and include it in XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   724
    "Modified: / 06-06-2014 / 00:46:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   725
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   726
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   727
!TestReportFormat class methodsFor:'documentation'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   728
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   729
version
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   730
    ^ '$Header$'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   731
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   732
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   733
version_CVS
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   734
    ^ '$Header$'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   735
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   736
296
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   737
version_HG
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   738
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   739
    ^ '$Changeset: <not expanded> $'
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   740
!
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   741
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   742
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   743
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   744
! !
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   745