reports/Builder__TestReportFormat.st
author Jan Vrany <jan.vrany@labware.com>
Tue, 02 Jun 2020 11:32:35 +0100
branchjv
changeset 564 089cc2fa6c6c
parent 334 a7f6c7bc62a8
child 565 80afdfe990f9
permissions -rw-r--r--
Print all instance variables in failed test stack trace This helps with debugging.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
     1
"
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
     2
COPYRIGHT (c) 2020 LabWare
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
     3
"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
"{ Package: 'stx:goodies/builder/reports' }"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
"{ NameSpace: Builder }"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
ReportFormat subclass:#TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	instanceVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
	category:'Builder-Reports-Formats'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
TestReportFormat subclass:#JUnit
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
    16
	instanceVariableNames:'position failures errors skipped startTime stopTime'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
	privateIn:TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
TestReportFormat subclass:#PerfPublisher
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
	instanceVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	privateIn:TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
TestReportFormat subclass:#PythonUnittest
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	instanceVariableNames:'index'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
	privateIn:TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
TestReportFormat subclass:#TAP
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
	instanceVariableNames:'index'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
	classVariableNames:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
	poolDictionaries:''
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
	privateIn:TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
    43
!TestReportFormat class methodsFor:'documentation'!
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
    44
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
    45
copyright
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
    46
"
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
    47
COPYRIGHT (c) 2020 LabWare
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
    48
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
    49
"
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
    50
! !
67
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
!TestReportFormat class methodsFor:'testing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
isAbstract
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    ^self == TestReportFormat
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    "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
    59
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
!TestReportFormat methodsFor:'accessing - defaults'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
defaultFileSuffix
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    "superclass HDReportFormat says that I am responsible to implement this method"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    ^ 'xml'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    "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
    69
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
!TestReportFormat methodsFor:'writing'!
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
writeTestCase: testcase outcome: outcome time: time exception: exception
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    | stacktrace |
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    exception isNil ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
        stacktrace := nil.        
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    ] ifFalse:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
        stacktrace :=
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
            (String streamContents:[:s|
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
                self writeStackTrace: exception of: testcase on: s
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
            ])
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    ^self writeTestCase: testcase outcome: outcome time: time exception: exception 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
             stacktrace: stacktrace
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    "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
    89
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
writeTestCase: testcase outcome: outcome time: time exception: exception stacktrace: stacktrace
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    "Write an outcome of a given test.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
     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
    95
        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
    96
        outcome.....the testcase outcome <TestCaseOutcome>
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
        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
    98
        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
    99
        backtrace...stacktrace info or nil if N/A <String | nil >"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    self subclassResponsibility
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
    "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
   104
    "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
   105
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
!TestReportFormat methodsFor:'writing - utilities'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
writeContext: context on: s
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   111
    |home mthd src rcvr vars args argAndVarNames |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    [
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    context printOn: s.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    s cr.
86
29a8a74674f5 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
   115
    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
   116
    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
   117
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   118
    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
   119
    vars := context vars.
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   120
    rcvr := context receiver.
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
   121
    argAndVarNames := context argAndVarNames.
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
    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
   123
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   124
    args keysAndValuesDo:[:idx :eachArg |
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   125
        self writeVariable: (argAndVarNames at: idx ifAbsent:['???']) index: idx value: eachArg on: s. 
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
    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
   128
    vars keysAndValuesDo:[:idx :eachVar |
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   129
        self writeVariable: (argAndVarNames at: idx + args size ifAbsent:['???']) index: idx value: eachVar on: s. 
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    ].
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   131
    s nextPutAll:'inst: '; cr.
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   132
    rcvr class allInstVarNames keysAndValuesDo:[ :idx :eachNam |
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   133
        self writeVariable: eachNam index: idx value: (rcvr instVarNamed: eachNam) on: s.         
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   134
    ].
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   135
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
   136
    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
   137
    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
   138
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   139
    (report notNil and:[report keepBytecode]) ifTrue:[
303
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   140
        s nextPutAll:'bytecode: '; cr.    
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   141
        mthd notNil ifTrue:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   142
            (mthd isJavaMethod and:[mthd class ~~ JavaNativeMethod]) ifFalse:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   143
                Decompiler decompile: mthd to: s.
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   144
            ] ifTrue:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   145
                (Smalltalk at: #JavaByteCodeDisassembler) notNil ifTrue:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   146
                    (Smalltalk at: #JavaByteCodeDisassembler) diassemble: mthd to: s.
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   147
                ] ifFalse:[ 
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   148
                    s nextPutAll: ' ** no JavaByteCodeDisassembler **'  
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   149
                ].
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
   150
            ].
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   151
        ].
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   152
    ].
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   153
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   154
    s cr.
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    s nextPutAll:'source: '; cr.    
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
    [
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
    mthd isNil ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
         s nextPutAll: '** no source **'. s cr. s cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
        ^ self.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    src := mthd source.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
    src isNil ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
        s nextPutAll: '** no source **'. s cr. s cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
        ^ self.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    ] on: Error do:[:ex|
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
        s 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
            nextPutAll: '** error when getting source: ';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
            nextPutAll:  ex description;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
            nextPutAll: '**';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
            cr; cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
        ^ self.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    src := src asCollectionOfLines.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    src keysAndValuesDo:[:lNr :line |
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
        lNr == context lineNumber ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
            s nextPutAll:'>> '.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
        ] ifFalse:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
            s nextPutAll:'   '.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
        ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
        s nextPutAll: line; cr.
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
    s cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
    ] on: Error do:[:ex|
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
        s   cr;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
            nextPutAll:'!!!!!!ERROR WHEN GETTING STACK TRACE!!!!!!'; cr;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
            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
   188
    ]. 
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   189
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   190
    "
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   191
    String streamContents:[ :s | Builder::TestReportFormat new writeContext: thisContext on: s ]
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
   192
    "
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
    "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
   195
    "Modified: / 15-03-2016 / 14:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   196
    "Modified: / 02-06-2020 / 11:00:29 / Jan Vrany <jan.vrany@labware.com>"
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
writeStackTrace:err of:aTestCase on: str
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
303
e217bb7aacf4 Backed out 4c26321be573.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 296
diff changeset
   201
    | context |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    context := err signalerContext.
91
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   204
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   205
    [ context notNil ] whileTrue:[
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   206
        self writeContext: context on: str.
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   207
        str cr; cr.
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   208
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   209
        (context receiver notNil and:[context receiver == aTestCase ]) ifTrue:[
91
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   210
            context selector == aTestCase selector ifTrue:[ ^ self ].
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   211
            context selector == #setUp ifTrue:[ ^ self ].
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   212
        ].
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   213
        context := context sender.
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   214
    ].
91
971a6aa7f424 changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   215
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   216
    "
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   217
    [ Error signal ] on: Error do:[:ex| String streamContents:[ :s | Builder::TestReportFormat new writeStackTrace: ex of: nil on: s ] ]
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   218
    "
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
    "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
   221
    "Modified: / 15-03-2016 / 14:33:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
564
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   222
    "Modified: / 02-06-2020 / 11:03:30 / Jan Vrany <jan.vrany@labware.com>"
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   223
!
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   224
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   225
writeVariable: name index: index value: value on: s
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   226
    s nextPutAll:'  '. 
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   227
    index printOn: s leftPaddedTo:3 . s space. 
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   228
    name printOn: s paddedTo:12. s nextPutAll:': '. 
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   229
    value isString ifTrue:[ 
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   230
        value storeOn: s
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   231
    ] ifFalse:[
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   232
        value printOn: s.
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   233
    ].
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   234
    s cr.
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   235
089cc2fa6c6c Print all instance variables in failed test stack trace
Jan Vrany <jan.vrany@labware.com>
parents: 334
diff changeset
   236
    "Created: / 02-06-2020 / 10:53:08 / Jan Vrany <jan.vrany@labware.com>"
67
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
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
!TestReportFormat::JUnit class methodsFor:'accessing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
symbolicNames
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
    ^ #( #junit #junit40 )
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
    "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
   245
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
!TestReportFormat::JUnit class methodsFor:'documentation'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   250
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
!TestReportFormat::JUnit methodsFor:'initialization'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
initialize
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
    super initialize.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
    errors := 0.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
    failures := 0.
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   260
    skipped := 0.
67
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 / 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
   263
    "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
   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
!TestReportFormat::JUnit methodsFor:'writing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
writeFooter
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    stopTime := OperatingSystem getMillisecondTime.
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
        tab;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
        nextPutAll:'<system-out><!![CDATA[]]></system-out>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
        nextPut:Character lf.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
        tab;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
        nextPutAll:'<system-err><!![CDATA[]]></system-err>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
        nextPut:Character lf.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
    stream nextPutAll:'</testsuite>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
    stream stream position:position.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
        nextPutAll:' failures="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
        print:failures;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
        nextPutAll:'" errors="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
        print:errors;
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   285
        nextPutAll:'" skipped="';
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   286
        print:skipped;
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
        nextPutAll:'" time="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
        print:(Time milliseconds:stopTime since:startTime) / 1000.0;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
        nextPutAll:'">'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
    stream close.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
    "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
   293
    "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
   294
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
writeHeader
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
        nextPutAll:'<?xml version="1.0" encoding="UTF-8"?>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
        nextPut:Character lf.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
        nextPutAll:'<testsuite name="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
        nextPutAll:(Report encode:report name);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
        nextPutAll:'" tests="';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
        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
   305
        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
   306
        nextPutAll:'>'.
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
     "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
   308
    position := stream stream position - 1.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
        nextPutAll:(String new:100 withAll:$ );
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
        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
   312
    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
   313
        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
   314
        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
   315
        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
   316
        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
   317
        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
   318
        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
   319
        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
   320
        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
   321
        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
   322
"/    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
   323
"/        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
   324
    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
   325
        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
   326
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
    startTime := OperatingSystem getMillisecondTime.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
    "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
   330
    "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
   331
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
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
   334
    | result |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   336
    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
   337
        result := #pass.
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   338
    ] ifFalse:[
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   339
        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
   340
            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
   341
            failures := failures + 1
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   342
        ] ifFalse:[
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   343
            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
   344
                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
   345
                errors := errors + 1.
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   346
            ] ifFalse:[
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   347
                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
   348
                    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
   349
                    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
   350
                ] 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
   351
                    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
   352
                ]
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
   353
            ].
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
   354
        ].
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
   355
    ].
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   357
    stream tab;
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   358
            nextPutAll: '<testcase classname="';
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   359
            nextPutAll: (self encode: testcase nameForHDTestReport);
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   360
            nextPutAll: '" name="';
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   361
            nextPutAll: (self encode: testcase selectorForHDTestReport);
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
            nextPutAll: '" time="'; print: (time ? 0) / 1000.0; nextPutAll: '">'; cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
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
   364
    result == #skip ifTrue:[
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   365
        stream tab; tab; nextPutAll: '<skipped/>'.
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   366
    ] 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
   367
        result ~~ #pass ifTrue:[
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   368
            | type message |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   370
            exception isNil ifTrue:[
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   371
                type := 'unknown exception'.
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   372
                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
   373
            ] ifFalse:[
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   374
                type := exception class name.
334
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   375
                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
   376
            ].
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   377
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   379
            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
   380
                nextPut:$<; nextPutAll: result;
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   381
                nextPutAll:' type="';
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   382
                nextPutAll:(self encode:type);
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   383
                nextPutAll:'" message="';
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   384
                nextPutAll:(self encode: message);
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   385
                nextPutAll:'"><!![CDATA['; cr.
334
a7f6c7bc62a8 Test report: print system identification in stacktrace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
   386
            "/ 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
   387
            "/ 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
   388
            "/ 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
   389
            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
   390
            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
   391
            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
   392
                
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   393
            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
   394
            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
   395
                nextPutAll:']]></'; nextPutAll: result; nextPutAll:'>';
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   396
                nextPut:Character lf
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   397
        ].
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
    ].
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
   399
    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
   400
        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
   401
            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
   402
            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
   403
            stream nextPutAll:']]> </system-out>'; cr.
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   404
        ].
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
   405
    ].
104
7b1b26108f1f Added support for skipped/ignored tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 91
diff changeset
   406
319
f525a38861f1 #OTHER by mawalch
mawalch
parents: 248
diff changeset
   407
    stream tab;
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   408
            nextPutAll: '</testcase>'; cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   409
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   410
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   411
    stream flush
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   412
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   413
    "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
   414
    "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
   415
! !
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   416
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   417
!TestReportFormat::JUnit methodsFor:'writing - utilities'!
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   418
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   419
writeCDATA: string
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   420
    | start stop |
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   421
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   422
    start := 1. 
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   423
    stop := start.
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   424
    [ (stop := (string indexOf: $] startingAt: stop)) ~~ 0 ] whileTrue:[
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   425
        ((stop < (string size - 1)) 
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   426
            and:[(string at: stop + 1) == $]
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   427
                and:[(string at: stop + 2) == $>]]) ifTrue:[
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   428
                    " Okay, found CDATA end token "
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   429
                    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
   430
                    stream nextPutAll: ']]><!![CDATA[>'.
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   431
                    start := stop := stop + 3.
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   432
                ] ifFalse:[
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   433
                    stop := stop + 1.
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   434
                ].
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   435
    ].
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   436
    start < string size ifTrue:[
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   437
        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
   438
    ].
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   439
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   440
    "
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   441
    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
   442
    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
   443
    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
   444
    "
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   445
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   446
    "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
   447
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   448
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   449
!TestReportFormat::PerfPublisher class methodsFor:'accessing'!
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
symbolicNames
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   452
    "Returns a collection of symbolic names for this format"
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
    ^ #(perfPublisher)
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   455
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   456
    "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
   457
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   458
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   459
!TestReportFormat::PerfPublisher class methodsFor:'documentation'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   460
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   461
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   462
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   463
! !
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
!TestReportFormat::PerfPublisher methodsFor:'writing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   466
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   467
writeFooter
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
    stream nextPutLine: '</report>'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   470
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   471
    "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
   472
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   473
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   474
writeHeader
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   475
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   476
    |reportName reportCategory testClass|
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   477
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   478
    reportName := report suite name.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   479
    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
   480
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   481
    (testClass := Smalltalk at:reportName asSymbol) isBehavior ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   482
        reportCategory := testClass category.  "/ at least, something to show
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   483
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   484
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   485
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   486
        nextPutLine: '<?xml version="1.0"?>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   487
        nextPutLine:('<report name="%1" categ="%2">' bindWith:reportName with:reportCategory);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   488
        nextPutLine:('  <start>');
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   489
        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
   490
        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
   491
        nextPutLine:('  </start>').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   492
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   493
    "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
   494
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   495
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   496
writeTestCase:testcase outcome:outcome time:time exception:exception stacktrace:stacktrace
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
    "
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   499
    Example:
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   500
    <test
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   501
        name='test_format_link_not_in_repos_with_line'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   502
        executed='exec-status'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   503
      <result>  
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   504
        <success passed='result-status' state='result-state'/>
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   505
        <errorlog><!![CDATA[EXEMPLE OF ERROR LOG]]></errorlog>
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   506
      </result>  
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   507
    </test>  
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   508
    "
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
    |testClassName executionTime testName testDescription 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   511
     successPassed successState exceptionInfo
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   512
     compilerName compilerVersion compilerConfiguration compilerVersionDate 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   513
     timeUnit timeMeasure 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   514
     sysInfo osType osVersion cpuType|
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
    testClassName := testcase printString.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   517
    testName := testcase selector.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   518
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   519
    "most tests do not know, and return nil here!!"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   520
    executionTime := time.    "/ millis
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   521
    testDescription := '%1-%2' bindWith:testClassName with:testName.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   522
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
   523
    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
   524
    (outcome result ~~ TestResult statePass) ifTrue:[
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   525
        exceptionInfo := stacktrace ? 'No stacktrace available'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   526
    ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   527
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   528
    successState := 'foo'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   529
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   530
    "/ caveat: the following needs to be made dialect-specific
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   531
    compilerName := 'Smalltalk/X'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   532
    compilerVersion := Smalltalk versionString.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   533
    compilerConfiguration := Smalltalk configuration.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   534
    compilerVersionDate := Smalltalk versionDate.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   535
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   536
    sysInfo := OperatingSystem getSystemInfo.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   537
    osType := (sysInfo at:#osType ifAbsent:'?').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   538
    osVersion := (sysInfo at:#release ifAbsent:'?').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   539
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   540
    cpuType := (sysInfo at:#cpuType ifAbsent:'?').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   541
    "/ cpuSpeed := (sysInfo at:#cpuSpeed ifAbsent:'?').
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   542
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   543
    timeUnit := 'ms'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   544
    timeMeasure := executionTime.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   545
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   546
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   547
        nextPutLine:('<test name="%1" executed="yes">' bindWith: testName);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   548
        nextPutLine:('  <description><!![CDATA[%1]]></description>' bindWith: testDescription);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   549
        nextPutLine:'  <platform>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   550
        nextPutLine:'    <os>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   551
        nextPutLine:('      <type><!![CDATA[%1]]></type>' bindWith:osType);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   552
        nextPutLine:('      <version><!![CDATA[%1]]></version>' bindWith:osVersion);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   553
        nextPutLine:'    </os>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   554
        nextPutLine:('    <processor arch="%1">' bindWith:cpuType);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   555
        "/ nextPutLine:('      <frequency> unit="Mhz" cpufreq="%1" />' bindWith:cpuSpeed);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   556
        nextPutLine:'    </processor>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   557
        nextPutLine:('    <compiler name="%1" version="%2" versiondate="%3" configuration="%4" />' 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   558
                            bindWith:compilerName with:compilerVersion 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   559
                            with:compilerVersionDate with:compilerConfiguration);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   560
        "/ nextPutLine:'    <environment />';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   561
        nextPutLine:'  </platform>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   562
        nextPutLine:'  <result>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   563
        nextPutLine:('    <success passed="%1" state="100" />' 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   564
                            bindWith:successPassed with:successState);
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   565
        "/ cg: in the perfPublisher documentation, I found "mesure".
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   566
        "/ 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
   567
        "/ 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
   568
        "/ 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
   569
        nextPutLine:('    <executiontime unit="%1" mesure="%2" measure="%2" isRelevant="yes" />' 
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   570
                            bindWith:timeUnit with:timeMeasure).
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
    exceptionInfo notNil ifTrue:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   573
        stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   574
            nextPutLine:'    <errorlog><!![CDATA[';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   575
            nextPutAll:exceptionInfo;
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   576
            nextPutLine:']]></errorlog>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   577
        ].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   578
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   579
        nextPutLine:'  </result>'.
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
    stream nextPutLine:'</test>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   582
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
   583
    "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
   584
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   585
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   586
!TestReportFormat::PythonUnittest class methodsFor:'accessing'!
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
symbolicNames
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   589
    "Returns a collection of symbolic names for this format"
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
    ^ #(python python-unittest)
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
    "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
   594
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   595
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   596
!TestReportFormat::PythonUnittest class methodsFor:'documentation'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   597
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   598
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   599
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   600
! !
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
!TestReportFormat::PythonUnittest methodsFor:'writing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   603
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   604
writeFooter
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   605
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   606
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   607
        nextPutLine: '</unittest-results>'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   608
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   609
    "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
   610
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   611
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   612
writeHeader
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   613
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   614
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   615
        nextPutLine: '<?xml version="1.0"?>';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   616
        nextPutLine: '<unittest-results>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   617
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   618
    "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
   619
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   620
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   621
writeTestCase:testcase outcome:outcome time:time exception:exception stacktrace:stacktrace
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   622
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   623
    "
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   624
    Example:
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   625
    <test
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   626
        duration='0.0188629627228'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   627
        status='error'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   628
        fixture='bitten.tests.web_ui.SourceFileLinkFormatterTestCase'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   629
        name='test_format_link_not_in_repos_with_line'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   630
        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
   631
    "
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   632
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
   633
    | testClassName result |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   634
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   635
    testClassName := testcase class printString.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   636
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
   637
    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
   638
        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
   639
    ] 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
   640
        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
   641
            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
   642
        ] 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
   643
            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
   644
                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
   645
            ] 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
   646
                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
   647
                    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
   648
                ] 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
   649
                    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
   650
                ]
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
   651
            ].
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
   652
        ].
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
   653
    ].    
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   654
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   655
    stream
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   656
        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
   657
        tab; nextPutAll:'status="'; nextPutAll: result; nextPutLine:'"';
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   658
        tab; nextPutAll:'ficture="'; nextPutAll: testClassName; nextPutLine:'"';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   659
        tab; nextPutAll:'name="'; nextPutAll: testcase selector; nextPutLine:'"';
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   660
        "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
   661
        tab; nextPutAll:'file="'; nextPutAll: testClassName , '.st'; nextPutLine:'">'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   662
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   663
    outcome == #pass ifFalse:[
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   664
        stream nextPutLine:'<traceback><!![CDATA['.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   665
        stream nextPutAll: stacktrace ? 'No stacktrace available'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   666
        stream nextPutLine:']]></traceback>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   667
    ].
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
    stream nextPutLine:'</test>'.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   670
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
   671
    "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
   672
! !
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
!TestReportFormat::TAP class methodsFor:'accessing'!
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
symbolicNames
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   677
    "Returns a collection of symbolic names for this format"
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
    ^ #(tap TAP)
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
    "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
   682
! !
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
!TestReportFormat::TAP class methodsFor:'documentation'!
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
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   687
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   688
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   689
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   690
!TestReportFormat::TAP methodsFor:'accessing - defaults'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   691
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   692
defaultFileSuffix
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   693
    "superclass HDReportFormat says that I am responsible to implement this method"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   694
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   695
    ^ 'tap'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   696
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   697
    "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
   698
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   699
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   700
!TestReportFormat::TAP methodsFor:'writing'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   701
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   702
writeFooter
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   703
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   704
    "nothing to do"
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   705
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   706
    "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
   707
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   708
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   709
writeHeader
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   710
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   711
    stream nextPutAll: '1..'; nextPutAll: report suite testCount printString; cr.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   712
    index := 0
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   713
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   714
    "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
   715
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   716
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   717
writeTestCase:testcase outcome:outcome time:time exception:exception stacktrace:stacktrace
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   718
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
   719
    | result testDescription statusString |
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   720
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   721
    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
   722
    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
   723
        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
   724
    ] 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
   725
        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
   726
            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
   727
        ] 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
   728
            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
   729
                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
   730
            ] 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
   731
                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
   732
                    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
   733
                ] 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
   734
                    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
   735
                ]
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
   736
            ].
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
   737
        ].
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
   738
    ].    
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   739
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   740
    testDescription := '%1-%2 (%3ms)'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   741
                            bindWith:testcase printString
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   742
                            with:testcase selector
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   743
                            with:time.
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   744
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
   745
    statusString := (result == #pass)
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   746
                        ifTrue:['ok']
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   747
                        ifFalse:['not ok'].
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   748
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   749
    stream nextPutLine:('%1 %2 - %3'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   750
                            bindWith:statusString
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   751
                            with:index
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   752
                            with:testDescription).
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   753
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
   754
    "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
   755
! !
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   756
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   757
!TestReportFormat class methodsFor:'documentation'!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   758
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   759
version
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   760
    ^ '$Header$'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   761
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   762
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   763
version_CVS
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   764
    ^ '$Header$'
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   765
!
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   766
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
   767
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
   768
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   769
    ^ '$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
   770
!
4c26321be573 Test report: show also a bytecode for each method on the stack
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 248
diff changeset
   771
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   772
version_SVN
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   773
    ^ '$Id$'
67
73732acacfc1 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   774
! !
191
cc00c3e2019c Fix for JUnit XML report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 104
diff changeset
   775