author | Claus Gittinger <cg@exept.de> |
Mon, 20 Jan 2020 21:02:47 +0100 | |
changeset 19422 | c6ca1c3e0fd7 |
parent 18997 | 2d6d26317af8 |
permissions | -rw-r--r-- |
18942 | 1 |
"{ Encoding: utf8 }" |
2 |
||
14728 | 3 |
" |
4 |
Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague |
|
5 |
Copyright (c) 2009-2010 eXept Software AG |
|
6 |
||
7 |
Permission is hereby granted, free of charge, to any person |
|
8 |
obtaining a copy of this software and associated documentation |
|
9 |
files (the 'Software'), to deal in the Software without |
|
10 |
restriction, including without limitation the rights to use, |
|
11 |
copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
12 |
copies of the Software, and to permit persons to whom the |
|
13 |
Software is furnished to do so, subject to the following |
|
14 |
conditions: |
|
15 |
||
16 |
The above copyright notice and this permission notice shall be |
|
17 |
included in all copies or substantial portions of the Software. |
|
18 |
||
19 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, |
|
20 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
|
21 |
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
|
22 |
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
23 |
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
|
24 |
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|
25 |
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
|
26 |
OTHER DEALINGS IN THE SOFTWARE. |
|
27 |
" |
|
28 |
"{ Package: 'stx:libtool' }" |
|
29 |
||
30 |
"{ NameSpace: Tools }" |
|
31 |
||
32 |
AbstractTestRunner subclass:#TestRunnerMini |
|
33 |
instanceVariableNames:'runnerPanel selectedClassesHolder selectedProtocolsHolder |
|
34 |
selectedMethodsHolder methodGeneratorHolder resultHolder |
|
35 |
resultInfoHolder resultBackgroundColorHolder runningHolder |
|
36 |
progressHolder progressIndicatorShownHolder infoHolder |
|
18718 | 37 |
testProcess allTestCases progressIndicator resultNameAspect |
38 |
currentTestCaseName' |
|
14728 | 39 |
classVariableNames:'' |
40 |
poolDictionaries:'' |
|
41 |
category:'SUnit-UI' |
|
42 |
! |
|
43 |
||
44 |
Object subclass:#SuiteAndResult |
|
45 |
instanceVariableNames:'suite result' |
|
46 |
classVariableNames:'' |
|
47 |
poolDictionaries:'' |
|
48 |
privateIn:TestRunnerMini |
|
49 |
! |
|
50 |
||
51 |
!TestRunnerMini class methodsFor:'documentation'! |
|
52 |
||
53 |
copyright |
|
54 |
" |
|
55 |
Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague |
|
56 |
Copyright (c) 2009-2010 eXept Software AG |
|
57 |
||
58 |
Permission is hereby granted, free of charge, to any person |
|
59 |
obtaining a copy of this software and associated documentation |
|
60 |
files (the 'Software'), to deal in the Software without |
|
61 |
restriction, including without limitation the rights to use, |
|
62 |
copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
63 |
copies of the Software, and to permit persons to whom the |
|
64 |
Software is furnished to do so, subject to the following |
|
65 |
conditions: |
|
66 |
||
67 |
The above copyright notice and this permission notice shall be |
|
68 |
included in all copies or substantial portions of the Software. |
|
69 |
||
70 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, |
|
71 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
|
72 |
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
|
73 |
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
74 |
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
|
75 |
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|
76 |
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
|
77 |
OTHER DEALINGS IN THE SOFTWARE. |
|
78 |
" |
|
79 |
! |
|
80 |
||
81 |
documentation |
|
82 |
" |
|
83 |
a tiny runner to be embedded in a system browser |
|
84 |
" |
|
85 |
! ! |
|
86 |
||
87 |
!TestRunnerMini class methodsFor:'help specs'! |
|
88 |
||
17917 | 89 |
helpSpec |
14728 | 90 |
"This resource specification was automatically generated |
91 |
by the UIHelpTool of ST/X." |
|
92 |
||
93 |
"Do not manually edit this!! If it is corrupted, |
|
94 |
the UIHelpTool may not be able to read the specification." |
|
95 |
||
96 |
" |
|
97 |
UIHelpTool openOnClass:Tools::TestRunnerEmbedded |
|
98 |
" |
|
99 |
||
100 |
<resource: #help> |
|
101 |
||
17917 | 102 |
^ super helpSpec addPairsFrom:#( |
14728 | 103 |
|
104 |
#debugSelected |
|
15331
1470fa754b07
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15330
diff
changeset
|
105 |
'Run the selected test(s) with debugging enabled.\\A debugger is opened on error or assertion failure' |
14728 | 106 |
|
107 |
#runAll |
|
15332
efdddd0ef26b
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15331
diff
changeset
|
108 |
'Run all tests.\\No debugger is opened on error or assertion failure,\but the test outcomes are remembered' |
14728 | 109 |
|
110 |
#runFailed |
|
15332
efdddd0ef26b
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15331
diff
changeset
|
111 |
'Only rerun failed tests.\\No debugger is opened on error or assertion failure,\but the test outcomes are remembered' |
14728 | 112 |
|
113 |
#runSelected |
|
15332
efdddd0ef26b
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15331
diff
changeset
|
114 |
'Run the selected test(s).\\No debugger is opened on error or assertion failure,\but the test outcomes are remembered' |
14728 | 115 |
|
116 |
#stopRun |
|
117 |
'Stop the test-run' |
|
118 |
||
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
119 |
#pin |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
120 |
'Pin the runner for the selected testcase as floating window.' |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
121 |
|
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
122 |
#runAllWithCoverage |
18707 | 123 |
'Run all tests with coverage measurement.\\This first recompiles all classes which are covered by the test(s) with instrumentation enabled,\so that reached code is recorded (runs a bit slower).\After the run, the browser will colorize reached code in green, unreached code in red, and partially reached code in orange.\\Classes to be coverage tested are defined by the test''s #coveredClasses or #coveredClassNames method' |
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
124 |
|
14728 | 125 |
) |
126 |
||
127 |
"Created: / 04-06-2012 / 19:27:47 / cg" |
|
18707 | 128 |
"Modified: / 21-03-2019 / 22:31:07 / Claus Gittinger" |
14728 | 129 |
! ! |
130 |
||
131 |
!TestRunnerMini class methodsFor:'image specs'! |
|
132 |
||
133 |
pinIcon |
|
18290 | 134 |
<resource: #programImage> |
135 |
||
15444
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
136 |
^ self pinIcon2 |
18290 | 137 |
|
138 |
"Modified: / 28-07-2018 / 09:49:24 / Claus Gittinger" |
|
15444
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
139 |
! |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
140 |
|
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
141 |
pinIcon1 |
14728 | 142 |
"This resource specification was automatically generated |
143 |
by the ImageEditor of ST/X." |
|
144 |
||
145 |
"Do not manually edit this!! If it is corrupted, |
|
146 |
the ImageEditor may not be able to read the specification." |
|
147 |
||
148 |
" |
|
15444
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
149 |
self pinIcon1 inspect |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
150 |
ImageEditor openOnClass:self andSelector:#pinIcon1 |
14728 | 151 |
Icon flushCachedIcons |
152 |
" |
|
153 |
||
154 |
<resource: #image> |
|
155 |
||
156 |
^Icon |
|
15444
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
157 |
constantNamed:'Tools::TestRunnerMini pinIcon1' |
14728 | 158 |
ifAbsentPut:[(Depth8Image new) width:14; height:13; bits:(ByteArray fromPackedString:' |
159 |
NC 8NC 8NC 8NB8/L# 8NC 8NC 8NC 8J3@1L# 8NC 8NC 8NB80J3@/APXDB@8OB3L+L3L0KB8RD1TVE1$ZJ2<0L2,8N@TGA@$JD@00KR<-M3 8M04MCP4M |
|
160 |
CPD0KSL7NC 7CRD\HRDAHRD!!HS\8NCXMH!!4"H!!4TGQ4#M# 8M@4[IRP^IQ8XIRT5NC *CRX_I!!<_I!!<QG2$8N@LMI2 ''HB\ HB\ @# 8@@@@@@@@@@@@@@@@ |
|
161 |
NC b') ; colorMapFromArray:#[136 149 174 23 50 93 145 154 169 144 154 168 48 116 186 68 118 170 70 119 171 70 120 171 62 133 196 62 132 195 93 155 206 170 202 228 171 202 228 197 223 244 93 156 206 132 180 218 132 181 218 205 228 246 90 156 204 111 182 226 179 216 240 88 182 232 115 196 236 153 212 241 186 225 246 189 226 245 217 238 249 242 251 255 235 249 255 238 250 255 241 251 255 245 252 255 248 253 255 235 250 255 238 251 255 239 251 255 241 252 255 242 252 255 245 253 255 248 254 255 247 254 255 157 161 160 157 162 160 0 114 54 0 97 46 0 82 39 0 149 62 53 155 88 114 182 73 125 181 81 163 202 129 159 167 110 170 170 151 171 169 151 183 177 142 191 182 136 255 255 255]; mask:((Depth1Image new) width:14; height:13; bits:(ByteArray fromPackedString:'@C @O@A<??3?<O?0??C?<O?0??C?<O?0??@b') ; yourself); yourself] |
|
15444
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
162 |
! |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
163 |
|
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
164 |
pinIcon2 |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
165 |
"This resource specification was automatically generated |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
166 |
by the ImageEditor of ST/X." |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
167 |
|
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
168 |
"Do not manually edit this!! If it is corrupted, |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
169 |
the ImageEditor may not be able to read the specification." |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
170 |
|
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
171 |
" |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
172 |
self pinIcon2 inspect |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
173 |
ImageEditor openOnClass:self andSelector:#pinIcon2 |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
174 |
Icon flushCachedIcons |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
175 |
" |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
176 |
|
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
177 |
<resource: #image> |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
178 |
|
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
179 |
^Icon |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
180 |
constantNamed:'Tools::TestRunnerMini pinIcon2' |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
181 |
ifAbsentPut:[(Depth8Image new) width:14; height:13; bits:(ByteArray fromPackedString:' |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
182 |
NC 8NC 8NC 8HR8/L"D8NC 8NC 8NC !!J3@1L# 8NC 8NC 8HR80J3@/APXDB@8OB3L+L3L0KB8RD1TVE1$ZJ2<0L2,!!HPTGA@$JD@00KR<-M3 8M04MCP4M |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
183 |
CPD0KSL7NC 7CRD\HRDAHRD!!HS\8NCXMH!!4"H!!4TGQ4#M# 8M@4[IRP^IQ8XIRT5NC *CRX_I!!<_I!!<QG2$8N@LMI2 ''HB\ HB\ @# 8@@@@@@@@@@@@@@@@ |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
184 |
NC b') ; colorMapFromArray:#[136 149 174 23 50 93 145 154 169 144 154 168 48 116 186 68 118 170 70 119 171 70 120 171 62 133 196 62 132 195 93 155 206 170 202 228 171 202 228 197 223 244 93 156 206 132 180 218 132 181 218 205 228 246 90 156 204 111 182 226 179 216 240 88 182 232 115 196 236 153 212 241 186 225 246 189 226 245 217 238 249 242 251 255 235 249 255 238 250 255 241 251 255 245 252 255 248 253 255 235 250 255 238 251 255 239 251 255 241 252 255 242 252 255 245 253 255 248 254 255 247 254 255 157 161 160 157 162 160 114 0 18 97 25 0 82 21 0 149 30 0 155 66 53 182 73 138 181 81 147 202 129 179 163 110 167 170 170 151 171 169 151 183 177 142 191 182 136 255 255 255]; mask:((Depth1Image new) width:14; height:13; bits:(ByteArray fromPackedString:'@G0@_@C<??3??O?0??C?<O?0??C?<O?0??@b') ; yourself); yourself] |
14728 | 185 |
! ! |
186 |
||
187 |
!TestRunnerMini class methodsFor:'interface specs'! |
|
188 |
||
189 |
windowSpec |
|
190 |
"This resource specification was automatically generated |
|
191 |
by the UIPainter of ST/X." |
|
192 |
||
193 |
"Do not manually edit this!! If it is corrupted, |
|
194 |
the UIPainter may not be able to read the specification." |
|
195 |
||
196 |
" |
|
197 |
UIPainter new openOnClass:Tools::TestRunnerMini andSelector:#windowSpec |
|
198 |
Tools::TestRunnerMini new openInterface:#windowSpec |
|
199 |
Tools::TestRunnerMini open |
|
200 |
" |
|
201 |
||
202 |
<resource: #canvas> |
|
203 |
||
204 |
^ |
|
205 |
#(FullSpec |
|
206 |
name: windowSpec |
|
18719 | 207 |
uuid: '0d236cb2-50b6-11e9-a55c-b8f6b1108e05' |
14728 | 208 |
window: |
209 |
(WindowSpec |
|
14831
17e27adfbd3d
Changed title of Tools::TestRunnerMini
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14739
diff
changeset
|
210 |
label: 'Mini Test Runner' |
17e27adfbd3d
Changed title of Tools::TestRunnerMini
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14739
diff
changeset
|
211 |
name: 'Mini Test Runner' |
18718 | 212 |
uuid: 'e9826d32-50a4-11e9-a55c-b8f6b1108e05' |
14728 | 213 |
min: (Point 10 10) |
214 |
bounds: (Rectangle 0 0 600 50) |
|
215 |
) |
|
216 |
component: |
|
217 |
(SpecCollection |
|
218 |
collection: ( |
|
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
219 |
(ViewSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
220 |
name: 'Box1' |
14728 | 221 |
layout: (LayoutFrame 0 0 0 0 0 1 0 1) |
18718 | 222 |
uuid: 'e9827192-50a4-11e9-a55c-b8f6b1108e05' |
14728 | 223 |
backgroundChannel: resultBackgroundColorAspect |
224 |
component: |
|
225 |
(SpecCollection |
|
226 |
collection: ( |
|
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
227 |
(HorizontalPanelViewSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
228 |
name: 'RunnerInnerBox' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
229 |
layout: (LayoutFrame 0 0 0 0 -2 1 0 1) |
18718 | 230 |
uuid: 'e9827372-50a4-11e9-a55c-b8f6b1108e05' |
14728 | 231 |
backgroundChannel: resultBackgroundColorAspect |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
232 |
horizontalLayout: rightSpaceFit |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
233 |
verticalLayout: topSpace |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
234 |
horizontalSpace: 0 |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
235 |
elementsChangeSize: true |
14728 | 236 |
component: |
237 |
(SpecCollection |
|
238 |
collection: ( |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
239 |
(ViewSpec |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
240 |
name: 'RunnerInfoBox' |
18718 | 241 |
uuid: 'e98275ca-50a4-11e9-a55c-b8f6b1108e05' |
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
242 |
backgroundChannel: resultBackgroundColorAspect |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
243 |
component: |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
244 |
(SpecCollection |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
245 |
collection: ( |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
246 |
(ActionButtonSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
247 |
name: 'Button3' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
248 |
layout: (LayoutFrame 5 0 3 0 21 0 17 0) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
249 |
activeHelpKey: pin |
18718 | 250 |
uuid: 'e98276b0-50a4-11e9-a55c-b8f6b1108e05' |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
251 |
level: 0 |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
252 |
visibilityChannel: pinButtonVisibleHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
253 |
backgroundChannel: resultBackgroundColorAspect |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
254 |
hasCharacterOrientedLabel: false |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
255 |
translateLabel: true |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
256 |
labelChannel: pinIcon |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
257 |
model: pin |
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
258 |
) |
18718 | 259 |
(LabelSpec |
260 |
label: 'Run tests first!!' |
|
261 |
name: 'ResultName' |
|
262 |
layout: (LayoutFrame 22 0 -2 0 0 1 -12 1) |
|
263 |
uuid: 'e9827a5c-50a4-11e9-a55c-b8f6b1108e05' |
|
264 |
backgroundChannel: resultBackgroundColorAspect |
|
265 |
foregroundChannel: resultTextForegroundColorAspect |
|
266 |
foregroundColor: (Color 100.0 100.0 100.0) |
|
267 |
translateLabel: true |
|
268 |
labelChannel: resultNameAspect |
|
269 |
adjust: left |
|
270 |
) |
|
271 |
(ViewSpec |
|
272 |
name: 'ProgressPanel' |
|
273 |
layout: (LayoutFrame 0 0 -12 1 0 1.0 -6 1) |
|
274 |
uuid: 'e9827c6e-50a4-11e9-a55c-b8f6b1108e05' |
|
275 |
initiallyInvisible: true |
|
276 |
visibilityChannel: progressIndicatorShownHolder |
|
277 |
backgroundChannel: resultBackgroundColorAspect |
|
278 |
component: |
|
279 |
(SpecCollection |
|
280 |
collection: ( |
|
281 |
(ProgressIndicatorSpec |
|
282 |
name: 'ProgressIndicator1' |
|
283 |
layout: (LayoutFrame 5 0 0 0 -5 1 0 1) |
|
284 |
uuid: 'e9827d90-50a4-11e9-a55c-b8f6b1108e05' |
|
18719 | 285 |
level: 0 |
18718 | 286 |
model: progressHolder |
287 |
postBuildCallback: postBuildProgressIndicator: |
|
288 |
) |
|
289 |
) |
|
290 |
||
291 |
) |
|
292 |
) |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
293 |
) |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
294 |
|
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
295 |
) |
18718 | 296 |
extent: (Point 206 31) |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
297 |
) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
298 |
(ActionButtonSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
299 |
label: 'Debug' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
300 |
name: 'DebugButton' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
301 |
activeHelpKey: debugSelected |
18718 | 302 |
uuid: 'e982804c-50a4-11e9-a55c-b8f6b1108e05' |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
303 |
translateLabel: true |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
304 |
model: debug |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
305 |
enableChannel: runEnabledHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
306 |
extent: (Point 60 25) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
307 |
) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
308 |
(ActionButtonSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
309 |
label: 'Stop' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
310 |
name: 'Button2' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
311 |
activeHelpKey: stopRun |
18718 | 312 |
uuid: 'e98281fa-50a4-11e9-a55c-b8f6b1108e05' |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
313 |
visibilityChannel: runningHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
314 |
translateLabel: true |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
315 |
model: stop |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
316 |
extent: (Point 60 25) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
317 |
) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
318 |
(ActionButtonSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
319 |
label: 'Run' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
320 |
name: 'Run' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
321 |
activeHelpKey: runSelected |
18718 | 322 |
uuid: 'e98283a8-50a4-11e9-a55c-b8f6b1108e05' |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
323 |
visibilityChannel: notRunningHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
324 |
translateLabel: true |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
325 |
model: run |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
326 |
enableChannel: runEnabledHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
327 |
extent: (Point 60 25) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
328 |
) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
329 |
(ActionButtonSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
330 |
label: 'Failed' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
331 |
name: 'Button1' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
332 |
activeHelpKey: runFailed |
18718 | 333 |
uuid: 'e982852e-50a4-11e9-a55c-b8f6b1108e05' |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
334 |
visibilityChannel: runFailedButtonVisibleHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
335 |
translateLabel: true |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
336 |
model: runFailed |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
337 |
enableChannel: runFailedEnabledHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
338 |
extent: (Point 60 25) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
339 |
) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
340 |
(ActionButtonSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
341 |
label: 'Run All' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
342 |
name: 'RunAll' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
343 |
activeHelpKey: runAll |
18718 | 344 |
uuid: 'e9828696-50a4-11e9-a55c-b8f6b1108e05' |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
345 |
visibilityChannel: runAllButtonVisibleHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
346 |
translateLabel: true |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
347 |
model: runAll |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
348 |
enableChannel: runAllEnabledHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
349 |
extent: (Point 60 25) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
350 |
) |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
351 |
(ActionButtonSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
352 |
label: 'Coverage' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
353 |
name: 'Button4' |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
354 |
activeHelpKey: runAllWithCoverage |
18718 | 355 |
uuid: 'e98287fe-50a4-11e9-a55c-b8f6b1108e05' |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
356 |
visibilityChannel: runAllButtonVisibleHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
357 |
translateLabel: true |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
358 |
model: runAllWithCoverage |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
359 |
enableChannel: runAllEnabledHolder |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
360 |
extent: (Point 80 25) |
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
361 |
) |
14728 | 362 |
) |
363 |
||
364 |
) |
|
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
365 |
postBuildCallback: postBuildRunnerPanel: |
14728 | 366 |
) |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
367 |
(LabelSpec |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
368 |
name: 'ResultInfo' |
16824 | 369 |
layout: (LayoutFrame 0 0 -20 1 0 1 0 1) |
370 |
style: (FontDescription helvetica medium roman 10 #'iso10646-1' nil nil) |
|
18718 | 371 |
uuid: 'e9828984-50a4-11e9-a55c-b8f6b1108e05' |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
372 |
backgroundChannel: resultBackgroundColorAspect |
15122
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
373 |
foregroundChannel: resultTextForegroundColorAspect |
14728 | 374 |
translateLabel: true |
15121
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
375 |
labelChannel: resultInfoAspect |
dd8d070f66b0
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15119
diff
changeset
|
376 |
adjust: left |
14728 | 377 |
) |
378 |
) |
|
379 |
||
380 |
) |
|
381 |
) |
|
382 |
) |
|
383 |
||
384 |
) |
|
385 |
) |
|
15162
fc14775b60a7
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15122
diff
changeset
|
386 |
|
14728 | 387 |
! ! |
388 |
||
389 |
!TestRunnerMini class methodsFor:'queries'! |
|
390 |
||
391 |
shouldRememberLastExtent |
|
392 |
"to be redefined by concrete applications: |
|
393 |
if true is answered, the application's extent is remembered on close |
|
394 |
and used as a default when opened the next time" |
|
395 |
||
396 |
^ false |
|
397 |
||
398 |
"Created: / 22-09-2014 / 14:02:03 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
399 |
! ! |
|
400 |
||
401 |
!TestRunnerMini methodsFor:'accessing'! |
|
402 |
||
403 |
allTestCases |
|
404 |
allTestCases isNil ifTrue:[ |
|
405 |
self updateTestCases |
|
406 |
]. |
|
407 |
^ allTestCases |
|
408 |
! |
|
409 |
||
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
410 |
allTestCases:something |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
411 |
allTestCases := something. |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
412 |
! |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
413 |
|
14728 | 414 |
infoHolder:something |
415 |
"to show something in the browsers info area (near the bottom" |
|
416 |
||
417 |
infoHolder := something. |
|
418 |
||
419 |
"Created: / 05-07-2011 / 16:22:24 / cg" |
|
420 |
! |
|
421 |
||
422 |
selectedTestMethods |
|
423 |
||
424 |
| selectedClass | |
|
425 |
selectedClass := self theSingleTestCase. |
|
426 |
||
427 |
^ (self selectedMethodsHolder value ? #()) select: |
|
428 |
[:mthd | | cls | |
|
429 |
(cls := selectedClass) isNil ifTrue:[cls := mthd mclass]. |
|
430 |
(self isTestCaseLike:selectedClass) |
|
431 |
and:[ selectedClass isTestSelector:mthd selector ] ] |
|
432 |
||
433 |
"Created: / 15-03-2010 / 13:21:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
434 |
"Modified: / 22-07-2011 / 15:46:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
435 |
"Modified: / 02-08-2011 / 17:46:38 / cg" |
|
436 |
! |
|
437 |
||
438 |
selectedTestMethodsFromProtocols:protocols |
|
439 |
||
440 |
|methods generator selectedClass| |
|
441 |
||
442 |
methods := Set new. |
|
443 |
generator := self methodGeneratorHolder value. |
|
444 |
selectedClass := self theSingleTestCase. |
|
445 |
||
446 |
generator notNil ifTrue:[ |
|
447 |
generator do: [:cls :cat :sel :mthd | |
|
448 |
(mthd notNil |
|
449 |
and:[ (self isTestCaseLike:(selectedClass ? cls)) |
|
450 |
and:[ (selectedClass ? cls) isTestSelector:sel ] ]) |
|
451 |
ifTrue:[ methods add:mthd ] |
|
452 |
] |
|
453 |
] ifFalse:[ |
|
454 |
allTestCases do: [:cls | |
|
455 |
cls methodsDo: [:mthd | |
|
456 |
((protocols includes:mthd category) and:[ cls isTestSelector:mthd selector ]) |
|
457 |
ifTrue:[ |
|
458 |
methods add:mthd |
|
459 |
] |
|
460 |
] |
|
461 |
] |
|
462 |
]. |
|
463 |
^ methods |
|
464 |
||
465 |
"Created: / 15-03-2010 / 19:50:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
466 |
"Modified: / 22-07-2011 / 15:53:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
467 |
"Modified (format): / 04-06-2012 / 19:05:32 / cg" |
|
468 |
! |
|
469 |
||
470 |
selectedTestMethodsFromProtocols:protocols inClass:aTestClass |
|
471 |
||
472 |
|methods generator| |
|
473 |
||
474 |
methods := Set new. |
|
475 |
generator := self methodGeneratorHolder value. |
|
476 |
||
477 |
generator notNil ifTrue:[ |
|
478 |
generator do: [:cls :cat :sel :mthd | |
|
479 |
(mthd notNil |
|
480 |
and:[ (self isTestCaseLike:(aTestClass ? cls)) |
|
481 |
and:[ (aTestClass ? cls) isTestSelector:sel ] ]) |
|
482 |
ifTrue:[ methods add:mthd ] |
|
483 |
] |
|
484 |
] ifFalse:[ |
|
485 |
self allTestCases do: [:cls | |
|
486 |
cls methodsDo: [:mthd | |
|
487 |
((protocols includes:mthd category) and:[ cls isTestSelector:mthd selector ]) |
|
488 |
ifTrue:[ |
|
489 |
methods add:mthd |
|
490 |
] |
|
491 |
] |
|
492 |
] |
|
493 |
]. |
|
16996 | 494 |
methods := methods asOrderedCollection. |
495 |
methods sortBySelector:#selector. |
|
496 |
^ methods |
|
14728 | 497 |
|
498 |
"Created: / 15-03-2010 / 19:50:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
499 |
"Modified: / 22-07-2011 / 15:53:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
500 |
"Modified (format): / 04-06-2012 / 19:05:32 / cg" |
|
501 |
! |
|
502 |
||
503 |
selectedTestMethodsInClass:testClass |
|
504 |
^ (self selectedMethodsHolder value ? #()) select: |
|
505 |
[:mthd | | cls | |
|
506 |
(cls := testClass) isNil ifTrue:[cls := mthd mclass]. |
|
507 |
(self isTestCaseLike:testClass) |
|
508 |
and:[ testClass isTestSelector:mthd selector ] ] |
|
509 |
||
510 |
"Created: / 15-03-2010 / 13:21:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
511 |
"Modified: / 22-07-2011 / 15:46:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
512 |
"Modified: / 02-08-2011 / 17:46:38 / cg" |
|
513 |
! |
|
514 |
||
515 |
theSingleTestCase |
|
516 |
||
517 |
self allTestCases isEmptyOrNil ifTrue:[^nil]. |
|
518 |
allTestCases size > 1 ifTrue:[^nil]. |
|
519 |
||
520 |
^allTestCases anyOne. |
|
521 |
||
522 |
"Created: / 22-07-2011 / 15:44:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
523 |
! ! |
|
524 |
||
525 |
!TestRunnerMini methodsFor:'actions'! |
|
526 |
||
527 |
debug |
|
18708 | 528 |
"run the selected test(s), opening a debugger on error/fail. |
529 |
Also executes tests which want to be skipped" |
|
530 |
||
16130 | 531 |
| suiteAndResult suite result testRunAction| |
14728 | 532 |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
533 |
suiteAndResult := resultHolder value. |
14728 | 534 |
suite := suiteAndResult suiteForRun. |
16132 | 535 |
"/ ^self run:suite debug: true coverageContext: nil. |
16130 | 536 |
|
537 |
||
14728 | 538 |
"/ suite tests size ~= 1 ifTrue:[^self breakPoint: #jv]. |
539 |
"/ test := suiteAndResult suite tests anyOne. |
|
540 |
result := TestResult defaultResultClass new. |
|
541 |
suiteAndResult := SuiteAndResult suite: suite result: result. |
|
542 |
||
543 |
self stop. |
|
544 |
||
16130 | 545 |
testRunAction := [ |
14728 | 546 |
"/ debug run is synchronous |
547 |
[ |
|
548 |
self runningHolder value:true. |
|
16634 | 549 |
self windowGroup repairDamage. |
14728 | 550 |
|
551 |
suite tests do:[:test | |
|
18062 | 552 |
|skipped| |
553 |
||
554 |
skipped := false. |
|
14728 | 555 |
[ |
18062 | 556 |
[ |
18842 | 557 |
self activityNotification:('running %1...' bindWith:test selector). |
18062 | 558 |
test debug. |
18708 | 559 |
] on:TestResult skipped do:[:ex | |
560 |
ex proceed. |
|
561 |
"/ skipped := true. |
|
18062 | 562 |
]. |
14728 | 563 |
] ifCurtailed:[ |
564 |
result failureOutcomes add: test. |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
565 |
resultHolder value:suiteAndResult; changed. |
14728 | 566 |
]. |
18062 | 567 |
skipped ifTrue:[ |
568 |
result skippedOutcomes add: test. |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
569 |
resultHolder value:suiteAndResult; changed. |
14728 | 570 |
] ifFalse:[ |
18062 | 571 |
(test class testSelectorPassed:test selector) ifTrue:[ |
14728 | 572 |
"/ result := TestResult defaultResultClass new. |
18062 | 573 |
"/ result passed add: test. |
574 |
"/ suiteAndResult := SuiteAndResult suite: suite result: result. |
|
575 |
result passedOutcomes add: test. |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
576 |
resultHolder value:suiteAndResult; changed. |
18062 | 577 |
] ifFalse:[ |
578 |
(test class testSelectorFailed:test selector) ifTrue:[ |
|
579 |
"/ result := TestResult defaultResultClass new. |
|
580 |
"/ result failures add: test. |
|
581 |
"/ suiteAndResult := SuiteAndResult suite: suite result: result. |
|
582 |
result failureOutcomes add: test. |
|
583 |
resultHolder value:suiteAndResult; changed. |
|
584 |
] |
|
585 |
]. |
|
16634 | 586 |
]. |
587 |
self windowGroup repairDamage |
|
14728 | 588 |
]. |
589 |
] ensure:[ |
|
590 |
self runningHolder value:false. |
|
591 |
]. |
|
16130 | 592 |
]. |
16132 | 593 |
testRunAction value. |
594 |
||
595 |
"/ testProcess := testRunAction newProcess. |
|
596 |
"/ testProcess priority:(Processor userBackgroundPriority). |
|
597 |
"/ testProcess resume. |
|
14728 | 598 |
|
599 |
"Created: / 15-03-2010 / 15:43:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
600 |
"Modified: / 07-07-2011 / 11:33:48 / Jan Vrany <jan.vrant@fit.cvut,cz>" |
|
601 |
"Modified: / 03-12-2012 / 14:02:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
16130 | 602 |
"Modified: / 18-02-2016 / 16:49:14 / cg" |
18842 | 603 |
"Modified: / 26-06-2019 / 15:17:02 / Claus Gittinger" |
14728 | 604 |
! |
605 |
||
606 |
pin |
|
18718 | 607 |
"create a new pinned runner; |
608 |
that is one in its own top window" |
|
609 |
||
14728 | 610 |
| runner screen | |
611 |
||
612 |
runner := TestRunnerMini new. |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
613 |
runner resultHolder value: resultHolder value copy. |
14728 | 614 |
|
615 |
runner allButOpen. |
|
616 |
||
617 |
screen := Screen current. |
|
18942 | 618 |
(screen notNil and:[ screen isX11Platform ]) ifTrue:[ |
14728 | 619 |
"/ Use EWMH hint to tell the WM that the window is |
620 |
"/ a sort of floating tool so WM can decorate it according to |
|
621 |
"/ DE standards. |
|
622 |
runner window id isNil ifTrue:[ |
|
623 |
runner window create. |
|
624 |
]. |
|
625 |
screen setWindowType:#'_NET_WM_WINDOW_TYPE_UTILITY' in:runner window id. |
|
626 |
]. |
|
627 |
runner open. |
|
628 |
||
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
629 |
"Modified: / 23-09-2014 / 12:05:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
18942 | 630 |
"Modified: / 25-07-2019 / 12:32:39 / Claus Gittinger" |
14728 | 631 |
! |
632 |
||
633 |
run |
|
18708 | 634 |
"run the selected test(s), NOT opening a debugger on error/fail. |
635 |
Also executes tests which want to be skipped" |
|
636 |
||
14728 | 637 |
|suite| |
638 |
||
639 |
resultHolder value isNil ifTrue:[ |
|
640 |
suite := self suiteForRun |
|
641 |
] ifFalse:[ |
|
642 |
suite := resultHolder value suiteForRun |
|
643 |
]. |
|
18708 | 644 |
[ |
18718 | 645 |
self run:suite debug:false coverageContext:nil |
18708 | 646 |
] on:TestResult skipped do:[:ex | |
647 |
ex proceed. |
|
648 |
] |
|
14728 | 649 |
|
650 |
"Created: / 10-03-2010 / 19:42:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
651 |
"Modified: / 22-08-2011 / 09:58:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
652 |
"Modified: / 09-10-2011 / 10:56:39 / cg" |
|
18718 | 653 |
"Modified: / 27-03-2019 / 16:16:26 / Claus Gittinger" |
14728 | 654 |
! |
655 |
||
656 |
run:suite |
|
18718 | 657 |
^self run:suite debug:false coverageContext:nil |
14728 | 658 |
|
659 |
"Created: / 11-03-2010 / 10:22:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
660 |
"Modified: / 09-06-2012 / 20:23:58 / cg" |
|
661 |
"Modified: / 03-12-2012 / 13:59:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
18718 | 662 |
"Modified: / 27-03-2019 / 16:16:14 / Claus Gittinger" |
14728 | 663 |
! |
664 |
||
665 |
run:suite debug: debug |
|
18718 | 666 |
self run:suite debug:debug coverageContext:nil |
667 |
||
668 |
"Modified (format): / 27-03-2019 / 16:16:05 / Claus Gittinger" |
|
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
669 |
! |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
670 |
|
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
671 |
run:suite debug: debug coverageContext: coverageContextOrNil |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
672 |
|suiteAndResult numTests testRunAction| |
14728 | 673 |
|
674 |
numTests := suite tests size. |
|
675 |
numTests == 0 ifTrue:[ |
|
676 |
^ self |
|
677 |
]. |
|
678 |
||
679 |
self stop. |
|
680 |
||
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
681 |
testRunAction := |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
682 |
[ |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
683 |
|result incr run| |
14728 | 684 |
|
16130 | 685 |
result := (debug ifFalse:[TestResult] ifTrue:[TestResultForRunWithDebug]) new. |
686 |
suiteAndResult := SuiteAndResult suite:suite result:result. |
|
687 |
resultHolder setValue:nil; value:suiteAndResult; changed. |
|
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
688 |
[ |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
689 |
self runningHolder value:true. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
690 |
self progressIndicatorShownHolder value:(numTests > 1). |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
691 |
self progressHolder value:0. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
692 |
incr := 100 / numTests. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
693 |
run := 0. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
694 |
result := suite |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
695 |
run: result |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
696 |
beforeEachDo:[:test :result | |
18718 | 697 |
currentTestCaseName := (' (run: ',test getTestName allBold,')'). |
698 |
resultHolder changed. |
|
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
699 |
infoHolder notNil ifTrue:[ |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
700 |
infoHolder value:('Running "%1-%2"...' |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
701 |
bindWith:test name |
18718 | 702 |
with:test getTestName allBold). |
18843 | 703 |
self window repairDamage. |
704 |
] ifFalse:[ |
|
705 |
self activityNotification:('Running "%1-%2"...' |
|
706 |
bindWith:test name |
|
707 |
with:test getTestName allBold). |
|
14728 | 708 |
] |
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
709 |
] |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
710 |
afterEachDo:[:test :result | |
18718 | 711 |
currentTestCaseName := nil. |
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
712 |
run := run + 1. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
713 |
self progressHolder value:(incr * run) truncated "rounded". |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
714 |
infoHolder notNil ifTrue:[ |
18718 | 715 |
infoHolder value:('Done.'). |
716 |
self window repairDamage. |
|
16634 | 717 |
]. |
718 |
resultHolder setValue:nil; value:suiteAndResult; changed. |
|
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
719 |
] |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
720 |
debug: debug. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
721 |
suiteAndResult := SuiteAndResult suite:suite result:result. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
722 |
] ensure:[ |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
723 |
self progressIndicatorShownHolder value:false. |
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
724 |
resultHolder setValue:nil; value:suiteAndResult; changed. |
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
725 |
self runningHolder value:false. |
18843 | 726 |
infoHolder notNil ifTrue:[ |
727 |
infoHolder value:('Finished.'). |
|
728 |
] ifFalse:[ |
|
729 |
self activityNotification:('Finished.'). |
|
730 |
] |
|
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
731 |
] |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
732 |
]. |
14728 | 733 |
|
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
734 |
coverageContextOrNil notNil ifTrue:[ |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
735 |
|realAction| |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
736 |
|
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
737 |
realAction := testRunAction. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
738 |
testRunAction := [ coverageContextOrNil run:realAction ] |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
739 |
]. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
740 |
|
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
741 |
testProcess := testRunAction newProcess. |
14728 | 742 |
testProcess priority:(Processor userBackgroundPriority). |
743 |
testProcess resume. |
|
744 |
||
745 |
"Created: / 03-12-2012 / 13:59:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
16130 | 746 |
"Modified: / 18-02-2016 / 16:57:27 / cg" |
18843 | 747 |
"Modified: / 26-06-2019 / 15:22:35 / Claus Gittinger" |
14728 | 748 |
! |
749 |
||
750 |
runAll |
|
751 |
||
752 |
self run: (self suiteForRunAll). |
|
753 |
||
754 |
"Created: / 10-03-2010 / 19:42:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
755 |
"Modified: / 15-03-2010 / 13:12:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
756 |
"Modified: / 04-06-2012 / 19:00:14 / cg" |
|
757 |
! |
|
758 |
||
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
759 |
runAllWithCoverage |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
760 |
"return a collection of classes which are covered by the selected |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
761 |
tests. Requires that the testcase returns a non-empty collection |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
762 |
from the coveredClasses query" |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
763 |
|
18865 | 764 |
|testedClasses suite instrumentPackage suiteClasses suiteClass |
765 |
answer coveredClassNamesString coveredClassNames coveredClasses| |
|
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
766 |
|
16019 | 767 |
suite := self suiteForRunAll. |
768 |
||
769 |
instrumentPackage := false. |
|
18865 | 770 |
testedClasses := suite allCoveredClasses. |
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
771 |
testedClasses isEmpty ifTrue:[ |
18865 | 772 |
suite tests isEmpty ifTrue:[ |
18341 | 773 |
Dialog warn:(resources stringWithCRs:'The test suite is empty - nothing covered, I assume.'). |
774 |
^ self. |
|
18865 | 775 |
]. |
776 |
suiteClasses := suite tests collect:#class. |
|
777 |
suiteClasses size == 1 ifTrue:[ |
|
778 |
suiteClass := suiteClasses first |
|
779 |
]. |
|
780 |
suiteClass notNil ifTrue:[ |
|
781 |
answer := Dialog |
|
782 |
confirmWithCancel:(resources stringWithCRs:'The test cases do not define any covered class.\(missing #coveredClassNames or #coveredPackageNames method on the TestCase''s class side)\\Define covered classes now?\(click on "No" to run without coverage)') |
|
783 |
labels:(resources array:#('Cancel' 'No' 'Yes')). |
|
784 |
answer isNil ifTrue:[^ self]. |
|
785 |
||
786 |
answer == true ifTrue:[ |
|
787 |
coveredClassNamesString := Dialog request:'Name(s) of class(es) covered by test\(separate by blanks)'. |
|
788 |
coveredClassNamesString isEmptyOrNil ifTrue:[^ self]. |
|
789 |
coveredClassNames := (coveredClassNamesString splitBy:' ') collect:#withoutSeparators. |
|
790 |
coveredClasses := coveredClassNames |
|
791 |
collect:[:nm | |
|
792 |
|cls| |
|
793 |
||
794 |
(cls := Smalltalk classNamed:nm) isNil ifTrue:[ |
|
795 |
Dialog warn:'No class named "%1" found' with:nm |
|
796 |
]. |
|
797 |
cls] |
|
798 |
thenSelect:[:cls | cls notNil]. |
|
799 |
||
800 |
(suiteClass theMetaclass includesSelector:#coveredClassNames) ifFalse:[ |
|
801 |
suiteClass theMetaclass |
|
802 |
compile:('coveredClassNames |
|
803 |
"These classes will be instrumented for coverage analysis, |
|
804 |
before running the suite to provide coverage analysis/report" |
|
805 |
||
806 |
^ %1 |
|
807 |
' bindWith:(coveredClasses collect:#name as:Array) storeString) |
|
808 |
classified:'queries'. |
|
809 |
testedClasses := suite allCoveredClasses. |
|
810 |
]. |
|
811 |
]. |
|
812 |
]. |
|
813 |
]. |
|
814 |
||
815 |
testedClasses notEmptyOrNil ifTrue:[ |
|
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
816 |
self withWaitCursorDo:[ |
15335
97a08b01fb25
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15332
diff
changeset
|
817 |
infoHolder notNil ifTrue:[ |
97a08b01fb25
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15332
diff
changeset
|
818 |
infoHolder value:('Instrumenting...') |
97a08b01fb25
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15332
diff
changeset
|
819 |
]. |
97a08b01fb25
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15332
diff
changeset
|
820 |
|
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
821 |
testedClasses do:[:eachClass | |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
822 |
masterApplication recompileClassWithInstrumentation:eachClass. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
823 |
InstrumentationInfo cleanAllInfoFor:eachClass withChange:true. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
824 |
]. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
825 |
]. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
826 |
infoHolder notNil ifTrue:[ |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
827 |
infoHolder value:('Running test...') |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
828 |
]. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
829 |
]. |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
830 |
|
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
831 |
self |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
832 |
run:suite |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
833 |
debug:false |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
834 |
coverageContext:(InstrumentationContext new coverageOnly:true) |
17593 | 835 |
|
836 |
"Modified: / 19-07-2017 / 12:47:18 / cg" |
|
18341 | 837 |
"Modified (format): / 21-08-2018 / 17:38:50 / Claus Gittinger" |
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
838 |
! |
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
839 |
|
14728 | 840 |
runFailed |
841 |
self run: self suiteForRunFailed. |
|
842 |
||
843 |
"Created: / 04-06-2012 / 18:32:19 / cg" |
|
844 |
! |
|
845 |
||
846 |
runWithDebug |
|
847 |
"/ cg: I really do not want to run them twice to get a debugger |
|
848 |
"/ - I want to run them either with a debugger coming right away, or not. |
|
849 |
||
850 |
| suiteAndResult suite| |
|
851 |
||
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
852 |
suiteAndResult := resultHolder value. |
14728 | 853 |
suiteAndResult isNil ifTrue:[ |
854 |
suite := self suiteForRun. |
|
855 |
] ifFalse:[ |
|
856 |
suite := suiteAndResult suiteForRun. |
|
857 |
]. |
|
858 |
||
859 |
self run: suite debug: true |
|
860 |
||
861 |
||
862 |
||
863 |
"/ suiteAndResult suite tests size ~= 1 ifTrue:[^self breakPoint: #jv]. |
|
864 |
"/ [suiteAndResult suite tests anyOne debug] fork |
|
865 |
||
866 |
"Created: / 05-07-2011 / 18:45:43 / cg" |
|
867 |
"Modified: / 09-10-2011 / 10:55:46 / cg" |
|
868 |
"Modified: / 03-12-2012 / 13:59:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
869 |
! |
|
870 |
||
871 |
stop |
|
872 |
|p| |
|
873 |
||
874 |
(p := testProcess) notNil ifTrue:[ |
|
875 |
testProcess := nil. |
|
876 |
p terminate |
|
877 |
]. |
|
878 |
||
879 |
"Created: / 04-06-2012 / 18:34:07 / cg" |
|
880 |
! ! |
|
881 |
||
882 |
!TestRunnerMini methodsFor:'aspects'! |
|
883 |
||
884 |
debugVisibleAspect |
|
885 |
^ BlockValue |
|
886 |
with:[:model | |
|
887 |
model notNil |
|
18002 | 888 |
and:[ model countTests == 1 |
14728 | 889 |
and:[ model hasFailuresOrErrors ]] |
890 |
] |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
891 |
argument:resultHolder |
14728 | 892 |
|
893 |
"Created: / 15-03-2010 / 15:40:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
894 |
"Modified: / 02-08-2011 / 18:19:14 / cg" |
|
895 |
! |
|
896 |
||
897 |
notRunningHolder |
|
898 |
^ BlockValue forLogicalNot:(self runningHolder) |
|
899 |
||
900 |
"Created: / 04-06-2012 / 18:38:48 / cg" |
|
901 |
! |
|
902 |
||
903 |
progressHolder |
|
904 |
"return/create the 'progressHolder' value holder (automatically generated)" |
|
905 |
||
906 |
progressHolder isNil ifTrue:[ |
|
907 |
progressHolder := ValueHolder new. |
|
908 |
]. |
|
909 |
^ progressHolder |
|
910 |
! |
|
911 |
||
912 |
progressIndicatorShownHolder |
|
913 |
progressIndicatorShownHolder isNil ifTrue:[ |
|
914 |
progressIndicatorShownHolder := ValueHolder with: false. |
|
915 |
]. |
|
916 |
^ progressIndicatorShownHolder |
|
917 |
||
918 |
"Modified: / 15-03-2010 / 20:29:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
919 |
"Modified (comment): / 04-06-2012 / 18:38:52 / cg" |
|
920 |
"Created: / 04-06-2012 / 19:42:59 / cg" |
|
921 |
! |
|
922 |
||
923 |
resultBackgroundColorAspect |
|
924 |
<resource: #uiAspect> |
|
925 |
resultBackgroundColorHolder isNil ifTrue:[ |
|
926 |
resultBackgroundColorHolder := BlockValue |
|
927 |
with:[:result :running | |
|
928 |
running ifTrue:[ |
|
929 |
self class currentlyRunningColor |
|
930 |
"/ View defaultBackgroundColor |
|
931 |
] ifFalse:[ |
|
932 |
result isNil ifTrue:[ |
|
933 |
self class notRunColor |
|
934 |
] ifFalse:[ |
|
935 |
result color |
|
936 |
] |
|
937 |
]. |
|
938 |
] |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
939 |
argument:resultHolder |
14728 | 940 |
argument:self runningHolder. |
941 |
resultBackgroundColorHolder |
|
942 |
onChangeEvaluate:[ |
|
943 |
runnerPanel notNil ifTrue:[ |
|
944 |
runnerPanel backgroundColor:resultBackgroundColorHolder value |
|
945 |
] |
|
946 |
]. |
|
947 |
]. |
|
948 |
^ resultBackgroundColorHolder. |
|
949 |
||
950 |
"Created: / 15-03-2010 / 15:22:56 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
951 |
"Modified: / 04-06-2012 / 19:40:11 / cg" |
|
952 |
"Modified: / 23-09-2014 / 09:46:03 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
953 |
! |
|
954 |
||
955 |
resultHolder |
|
956 |
"return/create the 'resultHolder' value holder (automatically generated)" |
|
957 |
||
958 |
resultHolder isNil ifTrue:[ |
|
959 |
resultHolder := ValueHolder new. |
|
960 |
]. |
|
961 |
^ resultHolder |
|
962 |
! |
|
963 |
||
964 |
resultInfoAspect |
|
965 |
^ BlockValue |
|
18718 | 966 |
with:[:model | |
967 |
model isNil |
|
968 |
ifTrue:[ '' ] |
|
969 |
ifFalse:[ model info,(currentTestCaseName ? '') ] |
|
970 |
] |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
971 |
argument:resultHolder |
14728 | 972 |
|
973 |
"Created: / 15-03-2010 / 20:22:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
974 |
"Modified: / 02-08-2011 / 18:20:26 / cg" |
|
18718 | 975 |
"Modified: / 27-03-2019 / 16:19:23 / Claus Gittinger" |
14728 | 976 |
! |
977 |
||
978 |
resultNameAspect |
|
18718 | 979 |
resultNameAspect isNil ifTrue:[ |
980 |
resultNameAspect := BlockValue |
|
981 |
with:[:model | model isNil ifTrue:[ 'Run the tests!!' ] ifFalse:[ model name ] ] |
|
982 |
argument:resultHolder. |
|
983 |
]. |
|
984 |
^ resultNameAspect |
|
14728 | 985 |
|
986 |
"Created: / 15-03-2010 / 14:57:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
987 |
"Modified: / 15-03-2010 / 20:17:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
988 |
"Modified: / 02-08-2011 / 18:20:38 / cg" |
|
18718 | 989 |
"Modified: / 27-03-2019 / 16:09:41 / Claus Gittinger" |
14728 | 990 |
! |
991 |
||
15122
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
992 |
resultTextForegroundColorAspect |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
993 |
<resource: #uiAspect> |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
994 |
|
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
995 |
^ BlockValue |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
996 |
with:[:bgColor | |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
997 |
bgColor brightness > 0.6 ifTrue:[ |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
998 |
Color black |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
999 |
] ifFalse:[ |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
1000 |
Color white |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
1001 |
]. |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
1002 |
] |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
1003 |
argument:self resultBackgroundColorAspect |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
1004 |
! |
ab2f00b41933
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15121
diff
changeset
|
1005 |
|
14728 | 1006 |
runAllEnabledHolder |
1007 |
||
1008 |
^ self notRunningHolder |
|
1009 |
||
1010 |
"Created: / 07-09-2010 / 09:15:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1011 |
"Modified: / 04-06-2012 / 18:40:46 / cg" |
|
1012 |
! |
|
1013 |
||
1014 |
runEnabledHolder |
|
1015 |
^BlockValue |
|
1016 |
with: |
|
1017 |
[:result :running | |
|
1018 |
||
1019 |
running not |
|
1020 |
and:[ result notNil |
|
18002 | 1021 |
and:[ result countTests > 0 ]] |
14728 | 1022 |
] |
16130 | 1023 |
argument: self resultHolder |
14728 | 1024 |
argument: self runningHolder |
1025 |
||
1026 |
"Created: / 07-09-2010 / 09:15:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
16130 | 1027 |
"Modified: / 18-02-2016 / 16:54:29 / cg" |
14728 | 1028 |
! |
1029 |
||
1030 |
runFailedEnabledHolder |
|
1031 |
^BlockValue |
|
1032 |
with: |
|
1033 |
[:running | |
|
1034 |
||
1035 |
|result| |
|
1036 |
||
1037 |
running not |
|
1038 |
and:[ TestResult notNil |
|
1039 |
and:[ TestResult isLoaded |
|
1040 |
and:[ result := self resultForSuite:self suiteForRunAll. result notNil |
|
1041 |
and:[ result hasFailuresOrErrors ]]]] |
|
1042 |
] |
|
1043 |
"/ argument: self resultHolder |
|
1044 |
argument: self runningHolder |
|
1045 |
||
1046 |
"Created: / 07-09-2010 / 09:15:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1047 |
"Created: / 04-06-2012 / 18:28:12 / cg" |
|
1048 |
"Modified: / 18-07-2012 / 09:55:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1049 |
! |
|
1050 |
||
1051 |
runningHolder |
|
1052 |
runningHolder isNil ifTrue:[ |
|
1053 |
runningHolder := ValueHolder with: false. |
|
1054 |
]. |
|
1055 |
^ runningHolder |
|
1056 |
||
1057 |
"Modified: / 15-03-2010 / 20:29:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1058 |
"Modified (comment): / 04-06-2012 / 18:38:52 / cg" |
|
1059 |
! |
|
1060 |
||
1061 |
stopEnabledHolder |
|
1062 |
^ self runningHolder |
|
1063 |
||
1064 |
"Created: / 04-06-2012 / 18:29:01 / cg" |
|
1065 |
! ! |
|
1066 |
||
1067 |
!TestRunnerMini methodsFor:'aspects-visibility'! |
|
1068 |
||
1069 |
pinButtonVisibleHolder |
|
1070 |
^ false |
|
1071 |
||
1072 |
"Created: / 23-09-2014 / 10:11:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1073 |
! |
|
1074 |
||
1075 |
runAllButtonVisibleHolder |
|
1076 |
^ false |
|
1077 |
||
1078 |
"Created: / 23-09-2014 / 10:12:34 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1079 |
! |
|
1080 |
||
1081 |
runFailedButtonVisibleHolder |
|
1082 |
^ false |
|
1083 |
||
1084 |
"Created: / 23-09-2014 / 10:12:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1085 |
! ! |
|
1086 |
||
1087 |
!TestRunnerMini methodsFor:'change & update'! |
|
1088 |
||
1089 |
invalidateSuiteAndResult |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1090 |
resultHolder value:nil. |
14728 | 1091 |
! |
1092 |
||
1093 |
update:aspect with:param from:sender |
|
1094 |
||
1095 |
sender == Smalltalk ifTrue:[ |
|
1096 |
aspect == #lastTestRunResult ifTrue:[ |
|
1097 |
allTestCases notNil ifTrue:[ |
|
1098 |
(allTestCases includesIdentical: param first) ifTrue:[ |
|
18718 | 1099 |
self invalidateSuiteAndResult. "/ updateSuiteAndResult. |
14728 | 1100 |
self enqueueDelayedAction:[ self updateSuiteAndResult ]. |
1101 |
^self |
|
1102 |
] |
|
1103 |
]. |
|
1104 |
] |
|
1105 |
]. |
|
1106 |
super update:aspect with:param from:sender |
|
1107 |
||
1108 |
"Modified: / 23-09-2014 / 10:23:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
18718 | 1109 |
"Modified (comment): / 27-03-2019 / 16:14:24 / Claus Gittinger" |
14728 | 1110 |
! |
1111 |
||
1112 |
updateSuiteAndResult |
|
1113 |
| suite suiteAndResult | |
|
1114 |
||
1115 |
self runningHolder value ifTrue:[^self]. |
|
1116 |
self allTestCases isEmptyOrNil ifTrue:[^self]. |
|
1117 |
||
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1118 |
suite := self suiteForRun. |
14728 | 1119 |
suiteAndResult := SuiteAndResult |
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1120 |
suite: suite |
14728 | 1121 |
result: (self resultForSuite: suite). |
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1122 |
resultHolder value: suiteAndResult. |
14728 | 1123 |
|
1124 |
"Created: / 15-03-2010 / 19:41:27 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1125 |
"Modified: / 15-03-2010 / 20:55:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1126 |
"Modified: / 04-06-2012 / 19:03:15 / cg" |
|
1127 |
! |
|
1128 |
||
1129 |
updateTestCases |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1130 |
"/ Nothing to do here |
14728 | 1131 |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1132 |
"Created: / 23-09-2014 / 12:02:37 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
14728 | 1133 |
! |
1134 |
||
1135 |
updateTestSuiteAndResult |
|
18718 | 1136 |
<resource: #obsolete> |
1137 |
"/ ouch: duplicate code |
|
14728 | 1138 |
|
18718 | 1139 |
^ self updateSuiteAndResult |
1140 |
"/ | suite suiteAndResult | |
|
1141 |
"/ |
|
1142 |
"/ self runningHolder value ifTrue:[^self]. |
|
1143 |
"/ allTestCases isEmptyOrNil ifTrue:[^self]. |
|
1144 |
"/ |
|
1145 |
"/ suite := self suiteForRun. |
|
1146 |
"/ suiteAndResult := SuiteAndResult |
|
1147 |
"/ suite: suite |
|
1148 |
"/ result: (self resultForSuite: suite). |
|
1149 |
"/ resultHolder value: suiteAndResult. |
|
14728 | 1150 |
|
1151 |
"Created: / 15-03-2010 / 19:41:27 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1152 |
"Modified: / 15-03-2010 / 20:55:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1153 |
"Modified: / 04-06-2012 / 19:03:15 / cg" |
|
18718 | 1154 |
"Modified: / 27-03-2019 / 16:15:00 / Claus Gittinger" |
14728 | 1155 |
! |
1156 |
||
1157 |
updateVisibility |
|
15444
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
1158 |
"/ cg: now done by embedder via a valueHolder on the visibility |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
1159 |
^ self. |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
1160 |
"/ self hasTestCaseSelected |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
1161 |
"/ ifTrue:[self show] |
659a1b734348
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15335
diff
changeset
|
1162 |
"/ ifFalse:[self hide] |
14728 | 1163 |
|
1164 |
"Created: / 11-03-2010 / 09:02:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1165 |
! ! |
|
1166 |
||
1167 |
!TestRunnerMini methodsFor:'hooks'! |
|
1168 |
||
1169 |
commonPostOpen |
|
1170 |
||
17311 | 1171 |
super commonPostOpen. |
14728 | 1172 |
Smalltalk addDependent: self. |
1173 |
||
1174 |
"Created: / 17-11-2011 / 20:59:47 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1175 |
! |
|
1176 |
||
1177 |
postBuildRunnerPanel: aView |
|
1178 |
||
1179 |
runnerPanel := aView. |
|
1180 |
runnerPanel backgroundColor: self resultBackgroundColorAspect value |
|
1181 |
||
1182 |
"Created: / 15-03-2010 / 14:26:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1183 |
! |
|
1184 |
||
1185 |
release |
|
17577 | 1186 |
super release. |
14728 | 1187 |
Smalltalk removeDependent: self. |
1188 |
||
1189 |
"Created: / 23-09-2014 / 10:22:04 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
17577 | 1190 |
"Modified: / 16-07-2017 / 12:21:08 / cg" |
14728 | 1191 |
! |
1192 |
||
1193 |
releaseAsSubCanvas |
|
1194 |
||
1195 |
Smalltalk removeDependent: self. |
|
1196 |
||
1197 |
"Created: / 17-11-2011 / 21:03:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1198 |
! ! |
|
1199 |
||
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1200 |
!TestRunnerMini methodsFor:'initialization'! |
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1201 |
|
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1202 |
initialize |
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1203 |
super initialize. |
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1204 |
resultHolder := ValueHolder new. |
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1205 |
! ! |
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1206 |
|
14728 | 1207 |
!TestRunnerMini methodsFor:'private'! |
1208 |
||
1209 |
isTestCaseLike:cls |
|
1210 |
||
1211 |
^(super isTestCaseLike: cls) and: |
|
1212 |
[(cls askFor: #isAbstract) not] |
|
1213 |
||
1214 |
"Modified: / 04-03-2011 / 06:54:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1215 |
! |
|
1216 |
||
1217 |
postBuildProgressIndicator:aWidget |
|
1218 |
progressIndicator := aWidget |
|
1219 |
! ! |
|
1220 |
||
1221 |
!TestRunnerMini methodsFor:'queries'! |
|
1222 |
||
18718 | 1223 |
allCoveredClasses |
1224 |
"return a collection of classes which are covered by the selected |
|
1225 |
tests. Requires that the testcase returns a non-empty collection |
|
1226 |
from the coveredClasses query" |
|
1227 |
||
18865 | 1228 |
^ self suiteForRunAll allCoveredClasses. |
18718 | 1229 |
! |
1230 |
||
14728 | 1231 |
hasTestCaseSelected |
1232 |
||
1233 |
^self allTestCases notEmptyOrNil |
|
1234 |
||
1235 |
"Created: / 11-03-2010 / 09:06:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1236 |
"Modified: / 15-03-2010 / 20:54:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1237 |
"Modified: / 04-08-2011 / 20:42:10 / cg" |
|
1238 |
! ! |
|
1239 |
||
1240 |
!TestRunnerMini methodsFor:'utilities'! |
|
1241 |
||
1242 |
resultForSuite:suite |
|
1243 |
|result| |
|
1244 |
||
1245 |
result := TestResult defaultResultClass new. |
|
16130 | 1246 |
suite isNil ifTrue:[ ^ result ]. |
14728 | 1247 |
suite tests do:[:test | |
1248 |
| sel cls | |
|
1249 |
||
1250 |
sel := test selector. |
|
1251 |
cls := test class. |
|
1252 |
(cls testSelectorPassed:sel) ifTrue:[ |
|
1253 |
result passedOutcomes add: (cls rememberedOutcomeFor: sel) |
|
1254 |
] ifFalse:[ |
|
1255 |
(cls testSelectorError:sel) ifTrue:[ |
|
1256 |
result errorOutcomes add:(cls rememberedOutcomeFor: sel) |
|
1257 |
] ifFalse:[ |
|
1258 |
(cls testSelectorFailed:sel) ifTrue:[ |
|
1259 |
result failureOutcomes add:(cls rememberedOutcomeFor: sel) |
|
1260 |
] |
|
1261 |
] |
|
1262 |
] |
|
1263 |
]. |
|
1264 |
^ result |
|
1265 |
||
1266 |
"Created: / 15-03-2010 / 19:46:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1267 |
"Modified: / 20-08-2011 / 14:30:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
16130 | 1268 |
"Modified: / 18-02-2016 / 16:43:39 / cg" |
14728 | 1269 |
! |
1270 |
||
1271 |
suiteForRun |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1272 |
|result| |
15119
c4351ba2b224
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15008
diff
changeset
|
1273 |
|
15476
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1274 |
(result := resultHolder value) isNil ifTrue:[^ nil]. |
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1275 |
|
84f76104afc8
class: Tools::TestRunnerMini
Claus Gittinger <cg@exept.de>
parents:
15444
diff
changeset
|
1276 |
^ result suiteForRun |
14728 | 1277 |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1278 |
"Modified: / 23-09-2014 / 12:07:04 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
14728 | 1279 |
! |
1280 |
||
1281 |
suiteForRunAll |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1282 |
"raise an error: must be redefined in concrete subclass(es)" |
14728 | 1283 |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1284 |
^ self suiteForRun |
14728 | 1285 |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1286 |
"Modified: / 23-09-2014 / 12:07:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
14728 | 1287 |
! |
1288 |
||
1289 |
suiteForRunFailed |
|
1290 |
|suite numTests| |
|
1291 |
||
1292 |
suite := TestSuite named:(self suiteNameFromClasses: self allTestCases). |
|
1293 |
numTests := 0. |
|
1294 |
||
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1295 |
self suiteForRunAll tests do:[:eachTest | |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1296 |
| sel cls | |
14728 | 1297 |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1298 |
sel := eachTest selector. |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1299 |
cls := eachTest class. |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1300 |
(cls testSelectorPassed:sel) ifFalse:[ |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1301 |
suite addTest:eachTest. |
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1302 |
numTests := numTests + 1. |
14728 | 1303 |
] |
1304 |
]. |
|
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1305 |
|
14728 | 1306 |
numTests == 1 ifTrue:[ |
1307 |
suite name:(suite tests first selector) |
|
1308 |
] ifFalse:[ |
|
1309 |
suite name:(suite tests size printString,' tests') |
|
1310 |
]. |
|
1311 |
^suite |
|
1312 |
||
14739
ec549f688c75
Oops, fixes after refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
14728
diff
changeset
|
1313 |
"Modified: / 23-09-2014 / 12:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
14728 | 1314 |
! ! |
1315 |
||
1316 |
!TestRunnerMini::SuiteAndResult class methodsFor:'instance creation'! |
|
1317 |
||
1318 |
suite: suite result: result |
|
1319 |
||
1320 |
^self new |
|
1321 |
suite: suite; |
|
1322 |
result: result. |
|
1323 |
||
1324 |
"Modified: / 15-03-2010 / 15:27:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1325 |
! ! |
|
1326 |
||
1327 |
!TestRunnerMini::SuiteAndResult methodsFor:'accessing'! |
|
1328 |
||
1329 |
color |
|
1330 |
|numTests numRun| |
|
1331 |
||
18002 | 1332 |
self countTests > 0 ifTrue:[ |
14728 | 1333 |
result notNil ifTrue:[ |
1334 |
self hasErrors ifTrue:[^AbstractTestRunner errorColor]. |
|
1335 |
self hasFailures ifTrue:[^AbstractTestRunner failedColor]. |
|
17059 | 1336 |
self hasSkipped ifTrue:[^AbstractTestRunner notRunColor]. |
14728 | 1337 |
self hasPassed ifTrue:[ |
1338 |
numTests := suite tests size. |
|
1339 |
numRun := result passedCount + result failureCount + result errorCount. |
|
1340 |
numRun = numTests ifTrue:[ |
|
1341 |
^AbstractTestRunner passedColor |
|
1342 |
] |
|
1343 |
]. |
|
1344 |
] |
|
1345 |
]. |
|
1346 |
^ AbstractTestRunner notRunColor |
|
1347 |
||
1348 |
"Created: / 15-03-2010 / 15:24:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1349 |
"Modified: / 23-09-2014 / 10:04:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1350 |
! |
|
1351 |
||
18002 | 1352 |
countTests |
1353 |
||
1354 |
^suite tests size |
|
1355 |
||
1356 |
"Created: / 15-03-2010 / 15:44:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1357 |
! |
|
1358 |
||
14728 | 1359 |
info |
18708 | 1360 |
|numTests numRun skippedCount passedCount failureCount errorCount| |
14728 | 1361 |
|
1362 |
result ifNil:[^'']. |
|
1363 |
||
1364 |
numTests := suite tests size. |
|
18708 | 1365 |
skippedCount := result skippedCount. |
1366 |
passedCount := result passedCount. |
|
1367 |
failureCount := result failureCount. |
|
1368 |
errorCount := result errorCount. |
|
1369 |
||
1370 |
numRun := passedCount + failureCount + errorCount. |
|
1371 |
"/ (passedCount + failureCount + errorCount) = 1 ifTrue:[^'']. |
|
14728 | 1372 |
numRun == 0 ifTrue:[ |
1373 |
numTests == 1 ifTrue:[ |
|
18997 | 1374 |
result skippedOutcomes size == 1 ifTrue:[ |
1375 |
^ (result skippedOutcomes first exceptionDetail ? 'skipped') asString |
|
1376 |
]. |
|
1377 |
^ 'not run' |
|
14728 | 1378 |
]. |
18997 | 1379 |
^ '%1 tests, 0 run' bindWith: numTests |
14728 | 1380 |
]. |
1381 |
numRun < numTests ifTrue:[ |
|
18708 | 1382 |
skippedCount > 0 ifTrue:[ |
1383 |
^'%1 tests, %2 run, %5 skipped, %3 passed, %4 fail or error' |
|
1384 |
bindWith: numTests |
|
1385 |
with: numRun |
|
1386 |
with: passedCount |
|
1387 |
with: (failureCount+errorCount) |
|
1388 |
with: skippedCount |
|
1389 |
]. |
|
14728 | 1390 |
^'%1 tests, %2 run, %3 passed, %4 fail or error' |
1391 |
bindWith: numTests |
|
1392 |
with: numRun |
|
18708 | 1393 |
with: passedCount |
1394 |
with: (failureCount+errorCount) |
|
14728 | 1395 |
]. |
1396 |
||
18708 | 1397 |
skippedCount > 0 ifTrue:[ |
1398 |
^'%1 tests, %5 skipped, %2 passed, %3 failed, %4 errors' |
|
1399 |
bindWith: numTests |
|
1400 |
with: passedCount |
|
1401 |
with: failureCount |
|
1402 |
with: errorCount |
|
1403 |
with: skippedCount |
|
1404 |
]. |
|
1405 |
||
14728 | 1406 |
^'%1 tests, %2 passed, %3 failed, %4 errors' |
1407 |
bindWith: numTests |
|
18708 | 1408 |
with: passedCount |
1409 |
with: failureCount |
|
1410 |
with: errorCount |
|
14728 | 1411 |
|
1412 |
"Created: / 15-03-2010 / 20:23:34 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
18708 | 1413 |
"Modified: / 23-03-2019 / 10:24:23 / Claus Gittinger" |
14728 | 1414 |
! |
1415 |
||
1416 |
name |
|
1417 |
||
1418 |
^suite name |
|
1419 |
||
1420 |
"Created: / 15-03-2010 / 15:12:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1421 |
! |
|
1422 |
||
1423 |
result |
|
1424 |
^ result |
|
1425 |
! |
|
1426 |
||
1427 |
result:aTestResult |
|
1428 |
result := aTestResult. |
|
1429 |
! |
|
1430 |
||
1431 |
suite |
|
1432 |
^ suite |
|
1433 |
! |
|
1434 |
||
1435 |
suite:aTestSuite |
|
1436 |
suite := aTestSuite. |
|
1437 |
! |
|
1438 |
||
1439 |
suiteForRun |
|
1440 |
||
1441 |
| suiteForRun | |
|
1442 |
suiteForRun := suite class named: suite name. |
|
1443 |
suiteForRun addTests: |
|
1444 |
(suite tests collect:[:testCase|testCase class selector: testCase selector]). |
|
1445 |
^suiteForRun |
|
1446 |
||
1447 |
"Created: / 22-08-2011 / 09:56:24 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
18005 | 1448 |
! |
1449 |
||
1450 |
testCount |
|
1451 |
"obsoleted, because all methods starting with 'test' |
|
1452 |
are considered to be tests; so this is a bad name; |
|
1453 |
please use countTests" |
|
1454 |
||
1455 |
^ self countTests |
|
1456 |
||
1457 |
"Created: / 15-03-2010 / 15:44:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
14728 | 1458 |
! ! |
1459 |
||
1460 |
!TestRunnerMini::SuiteAndResult methodsFor:'queries'! |
|
1461 |
||
1462 |
hasErrors |
|
1463 |
||
1464 |
^result errorCount > 0 |
|
1465 |
||
1466 |
"Created: / 15-03-2010 / 15:21:12 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1467 |
! |
|
1468 |
||
1469 |
hasFailures |
|
1470 |
||
1471 |
^result failureCount > 0 |
|
1472 |
||
1473 |
"Created: / 15-03-2010 / 15:21:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1474 |
! |
|
1475 |
||
1476 |
hasFailuresOrErrors |
|
1477 |
||
1478 |
^self hasErrors or:[self hasFailures] |
|
1479 |
||
1480 |
"Created: / 15-03-2010 / 15:45:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
1481 |
! |
|
1482 |
||
1483 |
hasPassed |
|
1484 |
||
1485 |
^result passedCount > 0 |
|
1486 |
||
1487 |
"Created: / 15-03-2010 / 22:06:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
17059 | 1488 |
! |
1489 |
||
1490 |
hasSkipped |
|
1491 |
||
1492 |
^result skippedCount > 0 |
|
14728 | 1493 |
! ! |
1494 |
||
1495 |
!TestRunnerMini class methodsFor:'documentation'! |
|
1496 |
||
1497 |
version |
|
16019 | 1498 |
^ '$Header$' |
14728 | 1499 |
! |
1500 |
||
1501 |
version_CVS |
|
16019 | 1502 |
^ '$Header$' |
14728 | 1503 |
! |
1504 |
||
1505 |
version_SVN |
|
16019 | 1506 |
^ '$Id$' |
14728 | 1507 |
! ! |
1508 |