TestResultReporter.st
author Claus Gittinger <cg@exept.de>
Sun, 01 Jul 2018 12:52:19 +0200
changeset 719 2c96860ad5cb
parent 714 43c6db2bc66a
child 734 105a0c767ba1
permissions -rw-r--r--
#FEATURE by cg class: TestCase::Should class definition added: #assertSelector #beInstanceOf: #equal: #not #raise: changed: #be:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
694
7dd70a2303a3 #OTHER by mawalch
mawalch
parents: 680
diff changeset
     1
"{ Encoding: utf8 }"
7dd70a2303a3 #OTHER by mawalch
mawalch
parents: 680
diff changeset
     2
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ Package: 'stx:goodies/sunit' }"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
606
372c122b200b class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
     5
"{ NameSpace: Smalltalk }"
372c122b200b class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
     6
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
Object subclass:#TestResultReporter
332
50eb688bc515 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 324
diff changeset
     8
	instanceVariableNames:'result stream'
50eb688bc515 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 324
diff changeset
     9
	classVariableNames:''
50eb688bc515 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 324
diff changeset
    10
	poolDictionaries:''
583
437e5fe6ab3a Moved to category "SUnit-Smalltalk/X-Report" as it is St/X-specific (and mostly obsolete)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 567
diff changeset
    11
	category:'SUnit-Smalltalk/X-Report'
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    14
!TestResultReporter class methodsFor:'documentation'!
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    15
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    16
documentation
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    17
"
511
b42b302eb952 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 504
diff changeset
    18
    this is used as a last step in jenkins automated builds.
b42b302eb952 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 504
diff changeset
    19
299
4f7577ca5364 changed: #documentation
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    20
    WARNING:
4f7577ca5364 changed: #documentation
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    21
        this is about to be obsoleted by the reporter classes found in the
315
2bbaf83ac5c2 changed: #documentation
Claus Gittinger <cg@exept.de>
parents: 314
diff changeset
    22
        goodies/builder/ packages.
299
4f7577ca5364 changed: #documentation
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    23
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
    24
    Currently supported formats are:
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
    25
        #xml_jUnit      - a junit-like xml format
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
    26
        #xml_pythonUnit - a python unit-like xml format
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
    27
        #xml            - same, for backward compatibility
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
    28
        #tap            - perl TAP unit test format; 
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
    29
                          very naive and simple, but there are tools for it...
277
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
    30
        #xml_perfPublisher
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
    31
                        - can be processed by the perfPublisher jenkins/hudson plugin
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
    32
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
    33
    public API entry:
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    34
        |aTestResult|
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    35
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    36
        aTestResult := aUnitTest suite run.
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    37
        TestResultReporter report:aTestResult format:#xml on: aStream
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
    38
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    39
    modifications:
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    40
        cg: I think the name 'xml' is too unspecific; 
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    41
            I may want to add a whole bunch of additional xml-based formats. 
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
    42
            So I changed #xml to xml_pythonUnit (but still support the original #xml for bw-compatibility).
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    43
            You may be especially interested in xml_perfPublisher, which is great to present
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    44
            nice reports in jenkins/hudson...
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    45
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
    46
    [author:]
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
    47
        Jan Vranji
277
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
    48
        documentation, tap & perfPublisher format added by Claus Gittinger
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    49
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    50
    [see also:]
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    51
        TAP 
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    52
            http://testanything.org/wiki/index.php/Main_Page
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    53
            http://search.cpan.org/~petdance/Test-Harness-2.64/lib/Test/Harness/TAP.pod
277
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
    54
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
    55
        perfPublisher
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
    56
            http://wiki.hudson-ci.org/display/HUDSON/PerfPublisher+Plugin
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    57
"
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    58
!
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    59
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    60
examples
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
    61
"
680
73b23b0db410 #OTHER by mawalch
mawalch
parents: 606
diff changeset
    62
    Smalltalk loadPackage:'stx/goodies:regression'
460
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
    63
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    64
                                                                               [exBegin]
502
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    65
    |suite result testResult|
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    66
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    67
    suite := TestSuite named:'SelfTest'.
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    68
    #(
504
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    69
        'JavaScriptTests'
502
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    70
        'FloatTest'
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    71
        'IntegerTest'
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    72
    ) do:[:className |
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    73
        |fullName|
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    74
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    75
        fullName := ('RegressionTests::',className).
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    76
        suite addTest:(Smalltalk classNamed:fullName) suite.
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    77
    ].
680
73b23b0db410 #OTHER by mawalch
mawalch
parents: 606
diff changeset
    78
    testResult := suite run.
73b23b0db410 #OTHER by mawalch
mawalch
parents: 606
diff changeset
    79
    TestResultReporter report:testResult format:#xml_jUnit on:Transcript.
502
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    80
                                                                               [exEnd]
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    81
86ebb087d590 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 499
diff changeset
    82
                                                                               [exBegin]
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    83
    |testResult|
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    84
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    85
    testResult := RegressionTests::IntegerTest suite run.
680
73b23b0db410 #OTHER by mawalch
mawalch
parents: 606
diff changeset
    86
    TestResultReporter report:testResult format:#xml_jUnit on:Transcript.
494
105cb02e6a15 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 491
diff changeset
    87
                                                                               [exEnd]
105cb02e6a15 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 491
diff changeset
    88
105cb02e6a15 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 491
diff changeset
    89
                                                                               [exBegin]
105cb02e6a15 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 491
diff changeset
    90
    |testResult|
105cb02e6a15 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 491
diff changeset
    91
105cb02e6a15 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 491
diff changeset
    92
    testResult := RegressionTests::IntegerTest suite run.
680
73b23b0db410 #OTHER by mawalch
mawalch
parents: 606
diff changeset
    93
    TestResultReporter report:testResult format:#xml_pythonUnit on:Transcript.
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    94
                                                                               [exEnd]
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    95
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    96
                                                                               [exBegin]
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    97
    |testResult|
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    98
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
    99
    testResult := RegressionTests::IntegerTest suite run.
680
73b23b0db410 #OTHER by mawalch
mawalch
parents: 606
diff changeset
   100
    TestResultReporter report:testResult format:#tap on:Transcript.
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   101
                                                                               [exEnd]
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   102
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   103
                                                                               [exBegin]
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   104
    |testResult|
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   105
293
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   106
    testResult := RegressionTests::CollectionTests suite run.
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   107
    TestResultReporter report:testResult format:#xml_perfPublisher on:Transcript.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   108
                                                                               [exEnd]
321
d40aafdb1af8 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 320
diff changeset
   109
d40aafdb1af8 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 320
diff changeset
   110
                                                                               [exBegin]
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   111
    |suite testResult|
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   112
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   113
    suite := RegressionTests::WritingToTranscriptOrStdoutTest suite.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   114
    testResult := suite run.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   115
    TestResultReporter report:testResult format:#xml_jUnit on:Transcript.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   116
                                                                               [exEnd]
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   117
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   118
                                                                               [exBegin]
321
d40aafdb1af8 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 320
diff changeset
   119
    |testResult|
d40aafdb1af8 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 320
diff changeset
   120
d40aafdb1af8 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 320
diff changeset
   121
    testResult := RegressionTests::NumberTest suite run.
d40aafdb1af8 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 320
diff changeset
   122
    TestResultReporter report:testResult format:#xml_jUnit on:Transcript.
d40aafdb1af8 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 320
diff changeset
   123
                                                                               [exEnd]
332
50eb688bc515 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 324
diff changeset
   124
                                                                               [exBegin]
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   125
    |testResult|
332
50eb688bc515 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 324
diff changeset
   126
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   127
    testResult := RegressionTests::NumberTest suite run.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   128
    TestResultReporter report:testResult format:#xml_pythonUnit on:Transcript.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   129
                                                                               [exEnd]
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   130
                                                                               [exBegin]
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   131
    |testResult|
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   132
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   133
    testResult := RegressionTests::NumberTest suite run.
380
6499b6c0c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   134
    TestResultReporter report:testResult format:#xml_perfPublisher on:Transcript.
6499b6c0c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   135
                                                                               [exEnd]
6499b6c0c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   136
                                                                               [exBegin]
6499b6c0c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   137
    |testResult|
6499b6c0c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   138
6499b6c0c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   139
    testResult := RegressionTests::NumberTest suite run.
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   140
    TestResultReporter report:testResult format:#tap on:Transcript.
332
50eb688bc515 changed: #examples
Claus Gittinger <cg@exept.de>
parents: 324
diff changeset
   141
                                                                               [exEnd]
460
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   142
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   143
  test an error:
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   144
                                                                               [exBegin]
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   145
    |testResult|
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   146
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   147
    (RegressionTests::AssociationTests includesSelector:#'test_xx_willFail') ifFalse:[
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   148
        Class withoutUpdatingChangesDo:[
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   149
            RegressionTests::AssociationTests compile:'test_xx_willFail self assert:5 > 7.'.
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   150
            RegressionTests::AssociationTests compile:'test_xx_willErr self error:''err by purpose''.'
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   151
        ].
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   152
    ].
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   153
    testResult := RegressionTests::AssociationTests suite run.
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   154
    TestResultReporter report:testResult format:#xml_jUnit on:Transcript.
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   155
                                                                               [exEnd]
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   156
"
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   157
!
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   158
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   159
format_tap
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   160
"
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   161
    sample output for one of the st/x regression-tests looks like:
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   162
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   163
1..49
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   164
ok 1 - RegressionTests::IntegerTest-testComparing (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   165
ok 2 - RegressionTests::IntegerTest-testConstants (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   166
ok 3 - RegressionTests::IntegerTest-testCreationFromBytes1 (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   167
ok 4 - RegressionTests::IntegerTest-testDivision (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   168
ok 5 - RegressionTests::IntegerTest-testEncodeDecode (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   169
ok 6 - RegressionTests::IntegerTest-testFactorial (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   170
ok 7 - RegressionTests::IntegerTest-testGCD (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   171
ok 8 - RegressionTests::IntegerTest-testILC (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   172
ok 9 - RegressionTests::IntegerTest-testInline1 (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   173
ok 10 - RegressionTests::IntegerTest-testInteger1 (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   174
ok 11 - RegressionTests::IntegerTest-testIntegerMisc (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   175
...
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   176
ok 47 - RegressionTests::IntegerTest-test_gcdBug1 (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   177
ok 48 - RegressionTests::IntegerTest-test_gcdBug2 (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   178
ok 49 - RegressionTests::IntegerTest-test_gcdBug3 (0ms)
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   179
"
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   180
!
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   181
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   182
format_xml_jUnit
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   183
"
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   184
    sample output for one of the st/x regression-tests looks like:
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   185
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   186
   <?xml version='1.0' encoding='UTF-8' ?>
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   187
   <testsuite errors='1' failures='0' hostname='hazelnut.osuosl.org' name='net.cars.engine.BougieTest' tests='2' time='0.017' timestamp='2007-11-02T23:13:50'>
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   188
     <properties>
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   189
       <property name='java.vendor' value='IBM Corporation' />
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   190
       <property name='os.name' value='Linux' />
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   191
       <property name='sun.boot.class.path' value='/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/vm.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/core.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/charsets.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/graphics.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/security.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/ibmpkcs.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/ibmorb.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/ibmcfw.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/ibmorbapi.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/ibmjcefw.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/ibmjgssprovider.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/ibmjsseprovider2.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/ibmjaaslm.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/ibmcertpathprovider.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/server.jar:/opt/ibm-jdk-bin-1.5.0.5a/jre/lib/xml.jar' />
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   192
       <property name='sun.java2d.fontpath' value='' />
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   193
       <property name='java.vm.specification.vendor' value='Sun Microsystems Inc.' />
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   194
       <property name='ant.home' value='/home/jancumps/project/continuus/ant/distro' />
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   195
      ...
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   196
     </properties>
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   197
     <testcase classname='net.cars.engine.BougieTest' name='sparkDry' time='0.0010' />
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   198
     <testcase classname='net.cars.engine.BougieTest' name='sparkHumid' time='0.0050'>
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   199
       <error message='humidity level too high' type='java.lang.RuntimeException'>java.lang.RuntimeException: humidity level too high
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   200
          at net.cars.engine.Bougie.spark(Unknown Source)
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   201
          at net.cars.engine.BougieTest.sparkHumid(BougieTest.java:36)
460
86b22cd3896e use TestResultForSTX in SUnit runner
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   202
       </error>
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   203
     </testcase>
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   204
     <system-out><!![CDATA[]]></system-out>
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   205
     <system-err><!![CDATA[]]></system-err>
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   206
  </testsuite>
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   207
"
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   208
!
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   209
277
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   210
format_xml_perfPublisher
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   211
"
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   212
    sample output looks like:
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   213
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   214
<report name='GeneratedReport-0' categ='GeneratedReport'>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   215
  <start>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   216
    <date format='YYYYMMDD' val='20000101' />
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   217
    <time format='HHMMSS' val='195043' />
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   218
  </start>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   219
  <test name='/file_0/test_0' executed='yes'>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   220
    <description><!![CDATA[This is the description of the test number 0 member of the 0 file.]]></description>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   221
    <targets>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   222
      <target threaded='false'>PHP</target>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   223
    </targets>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   224
    <platform name='Plateform_0' remote='unknown' capspool='unknown'>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   225
      <os>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   226
        <type><!![CDATA[Linux-2.6.26-2-amd64-x86_64-with-glibc2.3.2]]></type>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   227
        <name><!![CDATA[Linux]]></name>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   228
        <version><!![CDATA[2.6.26-2-amd64]]></version>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   229
        <distribution><!![CDATA[Linux-2.6.26-2-amd64-x86_64-with-debian-5.0.3]]></distribution>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   230
      </os>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   231
      <processor arch='x86_64'>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   232
        <frequency unit='MHz' cpufreq='2667.000' />
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   233
      </processor>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   234
      <hardware><!![CDATA[nVidia Corporation GeForce 8500 GT (rev a1)]]></hardware>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   235
      <hardware><!![CDATA[nVidia Corporation GT200 [Tesla C1060 / Tesla S1070] (rev a1)]]></hardware>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   236
      <compiler name='ifort' version='11.0 20090131' path='.' />
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   237
      <environment>{PUT HERE ALL YOUR LIBS AND THE DESCRIPTION OF YOUR TEST ENVIRONMENT}</environment>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   238
    </platform>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   239
    <commandline rank='0' time='20100128-195406.590832' duration='0.599782943726'>the_first_command_executed</commandline>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   240
    <commandline rank='1' time='20100128-195406.590832' duration='0.599782943726'>the_second_command_executed</commandline>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   241
    <result>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   242
      <success passed='no' state='70' hasTimedOut='false' />
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   243
      <compiletime unit='s' mesure='1.456467636167308' isRelevant='false' />
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   244
      <performance unit='GFLOPs' mesure='39.621634393187904' isRelevant='false' />
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   245
      <executiontime unit='s' mesure='1.5300645576307736' isRelevant='false' />
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   246
      <errorlog><!![CDATA[EXEMPLE OF ERROR LOG]]></errorlog>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   247
      <log name='NameOfLogNumber0'><!![CDATA[Here it's another of other log]]></log>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   248
      <log name='NameOfLogNumber1'><!![CDATA[Here it's another of other log]]></log>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   249
    </result>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   250
  </test>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   251
  <test name='/file_0/test_1' executed='yes'>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   252
    ...
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   253
    </result>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   254
  </test>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   255
</report>
ef4b0fd291a8 added: #format_xml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
   256
"
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   257
!
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   258
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   259
format_xml_pythonUnit
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   260
"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   261
    sample output for one of the st/x regression-tests looks like:
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   262
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   263
<?xml version='1.0'?>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   264
<unittest-results>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   265
<test duration='0'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   266
    status='success'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   267
    ficture='RegressionTests::IntegerTest'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   268
    name='testComparing'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   269
    file='RegressionTests::IntegerTest.st'>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   270
</test>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   271
<test duration='0'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   272
    status='success'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   273
    ficture='RegressionTests::IntegerTest'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   274
    name='testConstants'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   275
    file='RegressionTests::IntegerTest.st'>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   276
</test>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   277
<test duration='0'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   278
    status='success'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   279
    ficture='RegressionTests::IntegerTest'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   280
    name='testCreationFromBytes1'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   281
    file='RegressionTests::IntegerTest.st'>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   282
</test>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   283
<test duration='0'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   284
    status='success'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   285
    ficture='RegressionTests::IntegerTest'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   286
    name='testDivision'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   287
    file='RegressionTests::IntegerTest.st'>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   288
</test>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   289
<test duration='0'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   290
    status='success'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   291
    ficture='RegressionTests::IntegerTest'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   292
    name='testEncodeDecode'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   293
    file='RegressionTests::IntegerTest.st'>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   294
</test>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   295
...
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   296
</unittest-results>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   297
"
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   298
! !
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   299
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   300
!TestResultReporter class methodsFor:'queries'!
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   301
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   302
supportedFormats
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   303
   "return a list of formats and short-info-string, as per supported format symbol"
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   304
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   305
    ^ #(
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   306
        (#'xml_jUnit'           'a junit-like xml format')
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   307
        (#'xml_pythonUnit'      'a python unit-like xml format')
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   308
        (#'xml_perfPublisher'   'xml-based format for jenkins/hudson')
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   309
        (#'tap'                 'perl TAP unit test format')
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   310
    )
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   311
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   312
    "Created: / 30-07-2011 / 10:18:18 / cg"
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   313
! !
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
!TestResultReporter class methodsFor:'reporting'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
report: aTestResult format: format as: stringOrFilename
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
    self new report: aTestResult format: format as: stringOrFilename
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
report: aTestResult format: format on: stream
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
    self new report: aTestResult format: format on: stream
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   325
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   326
    "
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   327
     self report:(RegressionTests::IntegerTest runTests) format:#xml on:Transcript
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   328
    "
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   329
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   330
    "Modified (comment): / 30-07-2011 / 09:37:53 / cg"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
!TestResultReporter methodsFor:'reporting'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   335
report:formatSymbol
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   336
    "currently supported formatSymbols:
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   337
            xml_pythonUnit, xml_perfPublisher, tap"
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   338
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
    |reportFormatSelector|
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   341
    reportFormatSelector := self reportFormatSelector:formatSymbol.
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
    (self respondsTo: reportFormatSelector)
267
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   343
        ifTrue:[self perform: reportFormatSelector]
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   344
        ifFalse:[self error:'Unsupported format: ', formatSymbol].
7d2e67524850 documented the code (sigh)
Claus Gittinger <cg@exept.de>
parents: 222
diff changeset
   345
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   346
    "Modified (comment): / 03-08-2011 / 12:57:54 / cg"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
report: aTestResult format: format as: stringOrFilename
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
    | s |
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
    s := stringOrFilename asFilename writeStream.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
    [ self report: aTestResult format: format on: s]
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   354
        ensure:[s close].
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
report: aTestResult format: aSymbol on: aStream
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
    result := aTestResult.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
    stream := aStream.
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
    self report: aSymbol
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
reportFormatSelector:format
606
372c122b200b class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
   365
    ^ ('report' , format asString asUppercaseFirst) asSymbol
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   368
!TestResultReporter methodsFor:'reporting - tap'!
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   369
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   370
reportTap
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   371
    "TAP (perl unit test) report format"
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   372
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   373
    |idx reportWithStatus|
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   374
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   375
    "example:
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   376
        1..4
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   377
        ok 1 - Input file opened
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   378
        not ok 2 - First line of the input valid
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   379
        ok 3 - Read the rest of the file
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   380
        not ok 4 - Summarized correctly # TODO Not written yet
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   381
    "
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   382
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   383
    "/ what about not-executed tests - why only runCount ?
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   384
    stream nextPutLine: ('1..%1' bindWith:result runCount).
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   385
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   386
    reportWithStatus := 
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   387
        [:testOutComes :status |
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   388
            testOutComes do:[:each | self reportTapTest: each index: idx result: status. idx := idx + 1 ]
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   389
        ].
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   390
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   391
    idx := 1.
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   392
    reportWithStatus value:result passedOutcomes value:#success.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   393
    reportWithStatus value:result failureOutcomes value:#failure.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   394
    reportWithStatus value:result errorOutcomes value:#error.
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   395
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   396
    "Created: / 30-07-2011 / 10:12:31 / cg"
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   397
!
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   398
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   399
reportTapTest: test index:index result: testResult
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   400
    | testClassName executionTime  testDescription statusString|
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   401
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   402
    testClassName := self sunitNameOf: test class.
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   403
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   404
    "most tests do not know, and return nil here!!"
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   405
    executionTime := test executionTime ? 0.0.
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   406
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   407
    testDescription := '%1-%2 (%3ms)'
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   408
                            bindWith:testClassName
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   409
                            with:test selector
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   410
                            with:executionTime.
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   411
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   412
    statusString := (testResult == #success)
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   413
                        ifTrue:['ok']
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   414
                        ifFalse:['not ok'].
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   415
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   416
    stream nextPutLine:('%1 %2 - %3'
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   417
                            bindWith:statusString
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   418
                            with:index
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   419
                            with:testDescription).
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   420
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   421
    "Created: / 30-07-2011 / 10:28:06 / cg"
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   422
! !
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   423
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   424
!TestResultReporter methodsFor:'reporting - xml-jUnit'!
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   425
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   426
errorMessageFromExceptionDetailOf:testOutcome
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   427
    |detail|
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   428
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   429
    detail := testOutcome exceptionDetail.
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   430
    detail isNil ifTrue:[
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   431
        ^ 'no error message'.
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   432
    ].
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   433
320
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   434
    "Smalltalk/X dialect detection..."
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   435
    ((Smalltalk respondsTo: #isSmalltalkX) and:[Smalltalk isSmalltalkX]) ifTrue:[ 
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   436
        "exception specific description string"
464
0cc90bf84720 changed: #errorMessageFromExceptionDetailOf:
Claus Gittinger <cg@exept.de>
parents: 463
diff changeset
   437
        ^ detail at:#description ifAbsent:[ (detail at:#exception) description]
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   438
    ].
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   439
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   440
    ^ 'no error message (no dialect specific extractor)'.
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   441
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   442
    "Created: / 07-08-2011 / 12:45:45 / cg"
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   443
!
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   444
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   445
errorTypeFromExceptionDetailOf:testOutcome
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   446
    |detail|
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   447
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   448
    detail := testOutcome exceptionDetail.
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   449
    detail isNil ifTrue:[
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   450
        ^ 'unknown error type'.
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   451
    ].
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   452
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   453
    "Smalltalk/X dialect detection..."
567
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   454
    ((Smalltalk respondsTo: #isSmalltalkX) and:[Smalltalk isSmalltalkX]) ifTrue:[
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   455
        |exception|
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   456
        "class name of the exception"
567
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   457
        exception := detail at:#exception.
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   458
        exception isBehavior ifTrue:[
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   459
            ^ exception name.
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   460
        ].
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   461
        ^ exception printString.
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   462
    ].
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   463
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   464
    ^ 'unknown error type (no dialect specific extractor)'.
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   465
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   466
    "Created: / 07-08-2011 / 13:06:44 / cg"
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   467
!
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   468
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   469
reportTracebackFromExceptionDetailOf:testOutcome
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   470
    |detail|
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   471
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   472
    detail := testOutcome exceptionDetail.
428
c33079efa6f3 changed: #reportTracebackFromExceptionDetailOf:
Claus Gittinger <cg@exept.de>
parents: 380
diff changeset
   473
    detail notNil ifTrue:[
c33079efa6f3 changed: #reportTracebackFromExceptionDetailOf:
Claus Gittinger <cg@exept.de>
parents: 380
diff changeset
   474
        "Smalltalk/X dialect detection..."
c33079efa6f3 changed: #reportTracebackFromExceptionDetailOf:
Claus Gittinger <cg@exept.de>
parents: 380
diff changeset
   475
        ((Smalltalk respondsTo: #isSmalltalkX) and:[Smalltalk isSmalltalkX]) ifTrue:[ 
714
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   476
            HTMLUtilities 
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   477
                escapeCharacterEntities:(detail at:#backtrace) 
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   478
                on:stream
428
c33079efa6f3 changed: #reportTracebackFromExceptionDetailOf:
Claus Gittinger <cg@exept.de>
parents: 380
diff changeset
   479
        ].
320
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   480
    ].
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   481
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   482
    "Created: / 07-08-2011 / 12:46:19 / cg"
714
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   483
    "Modified: / 21-06-2018 / 07:39:40 / Claus Gittinger"
320
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   484
!
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   485
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   486
reportXml_jUnit
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   487
    "jUnit-like XML unittest report format"
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   488
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   489
    stream
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   490
        nextPutLine: '<?xml version="1.0"?>';
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   491
        nextPutAll: '<testsuite';
494
105cb02e6a15 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 491
diff changeset
   492
        nextPutAll:(' tests="%1"' bindWith:result runCount);
709
bc89b620846e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 694
diff changeset
   493
        nextPutAll:(' timestamp="%1"' bindWith:result timestamp printStringIso8601);
494
105cb02e6a15 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 491
diff changeset
   494
        nextPutAll:(' time="%1"' bindWith:result executionTime);
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   495
        nextPutAll:(' errors="%1"' bindWith:result errors size);
496
e9853244fcac class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 495
diff changeset
   496
        nextPutAll:(' failures="%1"' bindWith:result failures size).
e9853244fcac class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 495
diff changeset
   497
    result skipped size > 0 ifTrue:[
e9853244fcac class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 495
diff changeset
   498
        stream
e9853244fcac class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 495
diff changeset
   499
            nextPutAll:(' skipped="%1"' bindWith:result skipped size).
e9853244fcac class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 495
diff changeset
   500
    ].
e9853244fcac class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 495
diff changeset
   501
    stream
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   502
        nextPutAll:(' hostname="%1"' bindWith:OperatingSystem getHostName);
494
105cb02e6a15 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 491
diff changeset
   503
        nextPutAll:(' name="%1"' bindWith:result name);
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   504
        nextPutLine: '>'.
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   505
    stream
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   506
        nextPutLine: '  <properties>';
483
9a44430b7235 changed: #reportXml_jUnit
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   507
        nextPutLine: '    <property name="programmingLanguage" value="Smalltalk" />';
694
7dd70a2303a3 #OTHER by mawalch
mawalch
parents: 680
diff changeset
   508
        nextPutLine: '    <property name="smalltalk.vendor" value="eXept Software AG" />';
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   509
        nextPutLine: '    <property name="smalltalk.compiler" value="Smalltalk/X" />';
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   510
        nextPutLine:('    <property name="smalltalk.version" value="%1" />'bindWith:Smalltalk versionString);
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   511
        nextPutLine:('    <property name="os.name" value="%1" />' bindWith:OperatingSystem osName);
483
9a44430b7235 changed: #reportXml_jUnit
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   512
        nextPutLine:('    <property name="os.arch" value="%1" />' bindWith:OperatingSystem getCPUType);
308
fa5e3753dbca changed: #reportXml_jUnit
Claus Gittinger <cg@exept.de>
parents: 307
diff changeset
   513
        nextPutLine:('    <property name="user.name" value="%1" />' bindWith:OperatingSystem getLoginName);
483
9a44430b7235 changed: #reportXml_jUnit
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   514
        nextPutLine:('    <property name="user.language" value="%1" />' bindWith:Smalltalk language).
9a44430b7235 changed: #reportXml_jUnit
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   515
"/    stream
9a44430b7235 changed: #reportXml_jUnit
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   516
"/        nextPutLine:('    <property name="smalltalk.libbasic.version" value="%1" />'bindWith:stx_libbasic versionString).
9a44430b7235 changed: #reportXml_jUnit
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   517
    stream
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   518
        nextPutLine: '  </properties>'.
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   519
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   520
    result passedOutcomes  do:[:eachOutcome | self reportXml_jUnitTest: eachOutcome ].
490
bd75bbbdb53d class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 486
diff changeset
   521
    result skippedOutcomes  do:[:eachOutcome | self reportXml_jUnitTest: eachOutcome ].
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   522
    result failureOutcomes do:[:eachOutcome | self reportXml_jUnitTest: eachOutcome ].
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   523
    result errorOutcomes   do:[:eachOutcome | self reportXml_jUnitTest: eachOutcome ].
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   524
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   525
    stream
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   526
        nextPutLine: '</testsuite>'
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   527
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   528
    "Created: / 05-08-2011 / 15:21:45 / cg"
694
7dd70a2303a3 #OTHER by mawalch
mawalch
parents: 680
diff changeset
   529
    "Modified: / 21-11-2017 / 15:52:42 / mawalch"
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   530
!
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   531
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   532
reportXml_jUnitResultAndTraceback:testOutcome state:state
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   533
    |stateTag errorMessage errorType|
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   534
320
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   535
    (state = 'error') ifTrue:[
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   536
        stateTag := 'error'.
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   537
        errorMessage := 'unclassified error'.
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   538
    ] ifFalse:[
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   539
        stateTag := 'failure'.
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   540
        errorMessage := 'unclassified failure'.
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   541
    ].
5e253c584276 added: #errorMessageFromDetail:
Claus Gittinger <cg@exept.de>
parents: 315
diff changeset
   542
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   543
    "
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   544
     retrieves a single line error message; we use the exception's name or description
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   545
    "
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   546
    errorMessage := self errorMessageFromExceptionDetailOf:testOutcome.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   547
    errorType := self errorTypeFromExceptionDetailOf:testOutcome.
495
760963f18667 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   548
    errorMessage := errorMessage copyReplaceAll:$" withAll:'&quot;'.
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   549
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   550
    stream
504
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   551
        nextPutAll:('    <%1 message="%2" type="%3">' 
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   552
                            bindWith:stateTag 
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   553
                            with:errorMessage 
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   554
                            with:errorType);
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   555
        cr.
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   556
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   557
    "
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   558
     Prints a traceback to the stream.
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   559
     This is dialect-specific, so we have to check...
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   560
    "
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   561
    self reportTracebackFromExceptionDetailOf:testOutcome.
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   562
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   563
    stream
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   564
        nextPutAll:('    </%1>' bindWith:stateTag);
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   565
        cr.
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   566
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   567
    "Created: / 05-08-2011 / 15:40:09 / cg"
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   568
!
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   569
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   570
reportXml_jUnitTest:testOutcome
498
c2b692332294 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 497
diff changeset
   571
    |testClassName testClass testClassSourceFile executionTime executionTimeString 
527
4d28e3a48836 changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 511
diff changeset
   572
     test testResult javaPackagePrefix|
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   573
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   574
    test := testOutcome testCase.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   575
    testResult := testOutcome result.
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   576
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   577
    testClassName := self sunitNameOf: test class.
527
4d28e3a48836 changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 511
diff changeset
   578
    "/ prepend package, so it looks like a Java-class path
4d28e3a48836 changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 511
diff changeset
   579
    javaPackagePrefix := (test class package copyTransliterating:':/' to:'..'),'.'.
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   580
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   581
    (executionTime := testOutcome executionTime) isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   582
        executionTimeString := '0.0'.
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   583
    ] ifFalse:[
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   584
        executionTimeString := ((executionTime / 1000) asFixedPoint:3) printString.
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   585
    ].
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   586
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   587
    stream
463
3907fd5386e8 changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 460
diff changeset
   588
        nextPutAll:'  <testcase'; 
527
4d28e3a48836 changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 511
diff changeset
   589
        nextPutAll:(' classname="%1"' bindWith:(javaPackagePrefix,testClassName)); 
463
3907fd5386e8 changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 460
diff changeset
   590
        nextPutAll:(' name="%1"' bindWith:test selector);
3907fd5386e8 changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 460
diff changeset
   591
        nextPutAll:(' status="%1"' bindWith:testResult);
3907fd5386e8 changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 460
diff changeset
   592
        nextPutAll:(' time="%1"' bindWith:executionTimeString).
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   593
504
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   594
    ((testResult = TestResult statePass) 
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   595
    and:[ testOutcome collectedOutput isEmptyOrNil ]) ifTrue:[
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   596
        stream nextPutAll:'/>'; cr.
311
e57753c959e5 changed: #reportXml_jUnitTest:result:
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   597
    ] ifFalse:[
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   598
        stream nextPutAll:'>'; cr.
504
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   599
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   600
        testResult = TestResult statePass ifFalse:[
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   601
            self reportXml_jUnitResultAndTraceback:testOutcome state:testResult.
477
7642117622ae changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   602
504
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   603
            "/ generate a link to the source file
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   604
            testClass := Smalltalk classNamed:testClassName.
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   605
            testClass notNil ifTrue:[
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   606
                testClassSourceFile := TestResultStX sourceFilenameOfClass:testClass.
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   607
                testClassSourceFile notNil ifTrue:[
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   608
                    stream
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   609
                        nextPutAll:'    <system-err>'; cr;
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   610
                        nextPutAll:('[[ATTACHMENT|%1]]' bindWith:testClassSourceFile); cr;
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   611
                        nextPutAll:'    </system-err>'; cr.
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   612
                ]
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   613
            ].
477
7642117622ae changed: #reportXml_jUnitTest:
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   614
        ].
504
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   615
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   616
        testOutcome collectedOutput notEmptyOrNil ifTrue:[
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   617
            stream
567
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   618
                nextPutAll:'    <system-out><!![CDATA['; cr;
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   619
                nextPutAll: testOutcome collectedOutput;
3c563253ddc1 class: TestResultReporter
Stefan Vogel <sv@exept.de>
parents: 547
diff changeset
   620
                nextPutAll:']]> </system-out>'; cr.
504
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   621
        ].
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   622
81de3dfd9886 class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   623
        stream nextPutAll:'  </testcase>'; cr.
311
e57753c959e5 changed: #reportXml_jUnitTest:result:
Claus Gittinger <cg@exept.de>
parents: 310
diff changeset
   624
    ].
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   625
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   626
    "Created: / 18-08-2011 / 20:30:50 / cg"
307
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   627
! !
db569def6494 jUnit format
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
   628
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   629
!TestResultReporter methodsFor:'reporting - xml-perfPublisher'!
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   630
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   631
reportXml_perfPublisher
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   632
    "xml-based format for hudson/jenkins"
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   633
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   634
    |reportName reportCategory testClass startTime|
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   635
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   636
    reportName := result name.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   637
    reportCategory := 'uncategorized'.  "/ it is a required attribute; so what should we use ?
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   638
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   639
    (testClass := Smalltalk at:reportName asSymbol) isBehavior ifTrue:[
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   640
        reportCategory := testClass category.  "/ at least, something to show
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   641
    ].
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   642
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   643
    "/ compute the startTime from the earliest time found in the set of tests
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   644
    startTime := result timestamp.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   645
    startTime isNil ifTrue:[
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   646
        startTime := (result tests 
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   647
                        collect:[:each | each startTime]
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   648
                        thenSelect:[:timeOrNil | timeOrNil notNil]) min.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   649
    ].
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   650
    startTime := (startTime ? Time now) asTime.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   651
    
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   652
    stream
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   653
        nextPutLine: '<?xml version="1.0"?>';
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   654
        nextPutLine:('<report name="%1" categ="%2">' bindWith:reportName with:reportCategory);
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   655
        nextPutLine:('  <start>');
278
b8c0fa1c1934 changed: #reportXml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 277
diff changeset
   656
        nextPutLine:('    <date format="YYYYMMDD" val="%1" />' bindWith:(Date today printStringFormat:'%y%m%d'));
b8c0fa1c1934 changed: #reportXml_perfPublisher
Claus Gittinger <cg@exept.de>
parents: 277
diff changeset
   657
        nextPutLine:('    <time format="HHMMSS" val="%1" />' bindWith:(startTime printStringFormat:'%h%m%s'));
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   658
        nextPutLine:('  </start>').
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   659
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   660
    result passedOutcomes  do:[:each|self reportXml_perfPublisher: each result: #success].
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   661
    result failureOutcomes do:[:each|self reportXml_perfPublisher: each result: #failure].
490
bd75bbbdb53d class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 486
diff changeset
   662
    result skippedOutcomes  do:[:each|self reportXml_perfPublisher: each result: #error].
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   663
    result errorOutcomes   do:[:each|self reportXml_perfPublisher: each result: #error].
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   664
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   665
    stream
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   666
        nextPutLine: '</report>'
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   667
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   668
    "Created: / 30-07-2011 / 11:45:15 / cg"
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   669
!
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   670
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   671
reportXml_perfPublisher: testOutcome result: testResult
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   672
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   673
    "
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   674
    Example:
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   675
    <test
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   676
        name='test_format_link_not_in_repos_with_line'
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   677
        executed='exec-status'
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   678
      <result>  
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   679
        <success passed='result-status' state='result-state'/>
293
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   680
        <errorlog><!![CDATA[EXEMPLE OF ERROR LOG]]></errorlog>
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   681
      </result>  
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   682
    </test>  
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   683
    "
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   684
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   685
    |test testClassName executionTime testName testDescription 
293
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   686
     successPassed successState exceptionInfo
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   687
     compilerName compilerVersion compilerConfiguration compilerVersionDate 
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   688
     timeUnit timeMeasure 
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   689
     sysInfo osType osVersion cpuType|
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   690
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   691
    test := testOutcome testCase.
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   692
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   693
    testClassName := self sunitNameOf: test class.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   694
    testName := test selector.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   695
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   696
    "most tests do not know, and return nil here!!"
380
6499b6c0c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   697
    executionTime := testOutcome executionTime ? 0.    "/ millis
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   698
    testDescription := '%1-%2' bindWith:testClassName with:testName.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   699
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   700
    successPassed := (testResult == #success) ifTrue:['yes'] ifFalse:['no'].
293
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   701
    testResult ~~ #success ifTrue:[
380
6499b6c0c1ec changed:
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   702
        exceptionInfo := testOutcome exceptionDetail.
293
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   703
    ].
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   704
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   705
    successState := 'foo'.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   706
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   707
    "/ caveat: the following needs to be made dialect-specific
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   708
    compilerName := 'Smalltalk/X'.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   709
    compilerVersion := Smalltalk versionString.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   710
    compilerConfiguration := Smalltalk configuration.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   711
    compilerVersionDate := Smalltalk versionDate.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   712
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   713
    sysInfo := OperatingSystem getSystemInfo.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   714
    osType := (sysInfo at:#osType ifAbsent:'?').
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   715
    osVersion := (sysInfo at:#release ifAbsent:'?').
273
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   716
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   717
    cpuType := (sysInfo at:#cpuType ifAbsent:'?').
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   718
    "/ cpuSpeed := (sysInfo at:#cpuSpeed ifAbsent:'?').
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   719
275
a215bd80225f changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 274
diff changeset
   720
    timeUnit := 'ms'.
285
421cbd4c52af changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   721
    timeMeasure := executionTime.
275
a215bd80225f changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 274
diff changeset
   722
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   723
    stream
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   724
        nextPutLine:('<test name="%1" executed="yes">' bindWith: testName);
279
599cf9a3f347 changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 278
diff changeset
   725
        nextPutLine:('  <description><!![CDATA[%1]]></description>' bindWith: testDescription);
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   726
        nextPutLine:'  <platform>';
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   727
        nextPutLine:'    <os>';
273
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   728
        nextPutLine:('      <type><!![CDATA[%1]]></type>' bindWith:osType);
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   729
        nextPutLine:('      <version><!![CDATA[%1]]></version>' bindWith:osVersion);
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   730
        nextPutLine:'    </os>';
711
a706a78dc0e2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 709
diff changeset
   731
        nextPutLine:('    <processor arch="%1" wordLength="%2">' bindWith:cpuType with:(ExternalBytes sizeofPointer * 8));
273
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   732
        "/ nextPutLine:('      <frequency> unit="Mhz" cpufreq="%1" />' bindWith:cpuSpeed);
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   733
        nextPutLine:'    </processor>';
273
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   734
        nextPutLine:('    <compiler name="%1" version="%2" versiondate="%3" configuration="%4" />' 
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   735
                            bindWith:compilerName with:compilerVersion 
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   736
                            with:compilerVersionDate with:compilerConfiguration);
273
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   737
        "/ nextPutLine:'    <environment />';
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   738
        nextPutLine:'  </platform>';
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   739
        nextPutLine:'  <result>';
273
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   740
        nextPutLine:('    <success passed="%1" state="100" />' 
72af4634684c changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 272
diff changeset
   741
                            bindWith:successPassed with:successState);
285
421cbd4c52af changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   742
        "/ cg: in the perfPublisher documentation, I found "mesure".
421cbd4c52af changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   743
        "/ I am not sure, if that was a typo, or is actually what is expected...
421cbd4c52af changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   744
        "/ to be on the save side, I generate both a mesure and a measure attribute,
421cbd4c52af changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
   745
        "/ so it will work, even if they ever fix perfPublisher's xml parser.
275
a215bd80225f changed: #reportXml_perfPublisher:result:
Claus Gittinger <cg@exept.de>
parents: 274
diff changeset
   746
        nextPutLine:('    <executiontime unit="%1" mesure="%2" measure="%2" isRelevant="yes" />' 
293
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   747
                            bindWith:timeUnit with:timeMeasure).
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   748
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   749
    exceptionInfo notNil ifTrue:[
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   750
        stream
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   751
            nextPutLine:'    <errorlog><!![CDATA[';
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   752
            nextPutAll:exceptionInfo;
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   753
            nextPutLine:']]></errorlog>'.
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   754
        ].
cc1f781b513a changed:
Claus Gittinger <cg@exept.de>
parents: 285
diff changeset
   755
    stream
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   756
        nextPutLine:'  </result>'.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   757
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   758
    stream nextPutLine:'</test>'.
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   759
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   760
    "Created: / 30-07-2011 / 12:19:03 / cg"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   761
! !
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   762
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   763
!TestResultReporter methodsFor:'reporting - xml-python-unit'!
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   764
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   765
reportXml
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   766
    "backward compatible: python unit-like XML unittest report format"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   767
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   768
    self reportXml_pythonUnit
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   769
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   770
    "Created: / 30-07-2011 / 11:41:24 / cg"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   771
!
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   772
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   773
reportXml_pythonUnit
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   774
    "python unittest-like XML unittest report format"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   775
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   776
    stream
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   777
        nextPutLine: '<?xml version="1.0"?>';
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   778
        nextPutLine: '<unittest-results>'.
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   779
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   780
    result passedOutcomes  do:[:each|self reportXml_pythonUnitTest: each result: #success].
490
bd75bbbdb53d class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 486
diff changeset
   781
    result skippedOutcomes  do:[:each|self reportXml_pythonUnitTest: each result: #error].
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   782
    result failureOutcomes do:[:each|self reportXml_pythonUnitTest: each result: #failure].
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   783
    result errorOutcomes   do:[:each|self reportXml_pythonUnitTest: each result: #error].
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   784
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   785
    stream
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   786
        nextPutLine: '</unittest-results>'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   787
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   788
    "Created: / 03-08-2011 / 12:56:04 / cg"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   789
!
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   790
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   791
reportXml_pythonUnitTest:testOutcome result: testResult
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   792
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   793
    "
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   794
    Example:
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   795
    <test
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   796
        duration='0.0188629627228'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   797
        status='error'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   798
        fixture='bitten.tests.web_ui.SourceFileLinkFormatterTestCase'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   799
        name='test_format_link_not_in_repos_with_line'
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   800
        file='/usr/src/trac-bitten-0.6b2.dfsg/bitten/tests/web_ui.py'>
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   801
    "
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   802
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   803
    |test testClassName executionTime |
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   804
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   805
    test := testOutcome testCase.
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   806
    testClassName := self sunitNameOf: test class.
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   807
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   808
    "most tests do not know, and return nil here!!"
378
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   809
    executionTime := (testOutcome executionTime ? 0.0) printString.
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   810
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   811
    stream
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   812
        nextPutAll:'<test duration="'; nextPutAll:executionTime; nextPutLine:'"'; 
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   813
        tab; nextPutAll:'status="'; nextPutAll: testResult; nextPutLine:'"';
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   814
        tab; nextPutAll:'ficture="'; nextPutAll: testClassName; nextPutLine:'"';
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   815
        tab; nextPutAll:'name="'; nextPutAll: test selector; nextPutLine:'"';
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   816
        "It seems that some tools requires the file attributes. So we supply one :-)"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   817
        tab; nextPutAll:'file="'; nextPutAll: testClassName , '.st'; nextPutLine:'">'.
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   818
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   819
    testResult ~= #success ifTrue:[self reportXml_pythonUnitTraceback: test].
272
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   820
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   821
    stream nextPutLine:'</test>'.
492c13b42f3b unfinished perfPublisher support
Claus Gittinger <cg@exept.de>
parents: 268
diff changeset
   822
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   823
    "Created: / 03-08-2011 / 12:56:37 / cg"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   824
!
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   825
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   826
reportXml_pythonUnitTraceback: test
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   827
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   828
    "
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   829
        Prints a traceback to the stream.
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   830
        This is dialect-specific, so we have to check...
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   831
    "
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   832
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   833
    "Smalltalk/X dialect detection..."
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   834
    ((Smalltalk respondsTo: #isSmalltalkX) and:[Smalltalk isSmalltalkX])
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   835
        ifTrue:[^self reportXml_pythonUnitTracebackStX: test]
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   836
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   837
    "Created: / 03-08-2011 / 12:56:54 / cg"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   838
!
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   839
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   840
reportXml_pythonUnitTracebackStX: test
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   841
    stream nextPutLine:'<traceback><!![CDATA['.
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   842
714
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   843
    [ 
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   844
        test debug 
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   845
    ] on: GenericException do: [:ex|
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   846
        HTMLUtilities 
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   847
            escapeCharacterEntities:(ex suspendedContext fullPrintString)
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   848
            on: stream
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   849
    ].
298
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   850
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   851
    stream nextPutLine:']]></traceback>'.
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   852
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   853
    "Modified: / 07-12-2009 / 14:06:48 / Jan Vrany <jan.vrant@fit.cvut.cz>"
df98ca2a45b6 junit -> pythonUnit renames
Claus Gittinger <cg@exept.de>
parents: 294
diff changeset
   854
    "Created: / 03-08-2011 / 12:57:01 / cg"
714
43c6db2bc66a #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
   855
    "Modified: / 21-06-2018 / 07:41:26 / Claus Gittinger"
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   856
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   857
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   858
!TestResultReporter methodsFor:'utilities'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   859
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   860
sunitNameOf: aClass
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   861
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   862
    "No all SUnit versions comes with sunitName
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   863
     (at least Smalltalk/X 3.1)"
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   864
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   865
    ^(aClass respondsTo:#sunitName)
324
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   866
        ifTrue:[aClass sunitName]
bedb6fb29490 added:6 methods
Claus Gittinger <cg@exept.de>
parents: 321
diff changeset
   867
        ifFalse:[aClass printString]
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   868
! !
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   869
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   870
!TestResultReporter class methodsFor:'documentation'!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   871
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   872
version
680
73b23b0db410 #OTHER by mawalch
mawalch
parents: 606
diff changeset
   873
    ^ '$Header$'
268
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   874
!
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   875
02c41854a7b8 added tap (perl unit test) output format
Claus Gittinger <cg@exept.de>
parents: 267
diff changeset
   876
version_CVS
680
73b23b0db410 #OTHER by mawalch
mawalch
parents: 606
diff changeset
   877
    ^ '$Header$'
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   878
!
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   879
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   880
version_SVN
680
73b23b0db410 #OTHER by mawalch
mawalch
parents: 606
diff changeset
   881
    ^ '$Id$'
222
8e6f482297fa Jan's 4.1 version
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   882
! !
547
e388bff084ad class: TestResultReporter
Claus Gittinger <cg@exept.de>
parents: 527
diff changeset
   883