OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 @TestOn("vm") | 5 @TestOn("vm") |
6 | 6 |
7 import 'dart:convert'; | 7 import 'dart:convert'; |
8 | 8 |
9 import 'package:scheduled_test/descriptor.dart' as d; | 9 import 'package:scheduled_test/descriptor.dart' as d; |
10 import 'package:scheduled_test/scheduled_stream.dart'; | 10 import 'package:scheduled_test/scheduled_stream.dart'; |
(...skipping 13 matching lines...) Expand all Loading... |
24 void main() { | 24 void main() { |
25 useSandbox(); | 25 useSandbox(); |
26 | 26 |
27 test("runs several successful tests and reports when each completes", () { | 27 test("runs several successful tests and reports when each completes", () { |
28 _expectReport(""" | 28 _expectReport(""" |
29 test('success 1', () {}); | 29 test('success 1', () {}); |
30 test('success 2', () {}); | 30 test('success 2', () {}); |
31 test('success 3', () {}); | 31 test('success 3', () {}); |
32 """, [ | 32 """, [ |
33 _start, | 33 _start, |
| 34 _allSuites(), |
34 _suite(0), | 35 _suite(0), |
35 _testStart(1, "loading test.dart", groupIDs: []), | 36 _testStart(1, "loading test.dart", groupIDs: []), |
36 _testDone(1, hidden: true), | 37 _testDone(1, hidden: true), |
37 _group(2), | 38 _group(2, testCount: 3), |
38 _testStart(3, "success 1"), | 39 _testStart(3, "success 1"), |
39 _testDone(3), | 40 _testDone(3), |
40 _testStart(4, "success 2"), | 41 _testStart(4, "success 2"), |
41 _testDone(4), | 42 _testDone(4), |
42 _testStart(5, "success 3"), | 43 _testStart(5, "success 3"), |
43 _testDone(5), | 44 _testDone(5), |
44 _done() | 45 _done() |
45 ]); | 46 ]); |
46 }); | 47 }); |
47 | 48 |
48 test("runs several failing tests and reports when each fails", () { | 49 test("runs several failing tests and reports when each fails", () { |
49 _expectReport(""" | 50 _expectReport(""" |
50 test('failure 1', () => throw new TestFailure('oh no')); | 51 test('failure 1', () => throw new TestFailure('oh no')); |
51 test('failure 2', () => throw new TestFailure('oh no')); | 52 test('failure 2', () => throw new TestFailure('oh no')); |
52 test('failure 3', () => throw new TestFailure('oh no')); | 53 test('failure 3', () => throw new TestFailure('oh no')); |
53 """, [ | 54 """, [ |
54 _start, | 55 _start, |
| 56 _allSuites(), |
55 _suite(0), | 57 _suite(0), |
56 _testStart(1, "loading test.dart", groupIDs: []), | 58 _testStart(1, "loading test.dart", groupIDs: []), |
57 _testDone(1, hidden: true), | 59 _testDone(1, hidden: true), |
58 _group(2), | 60 _group(2, testCount: 3), |
59 _testStart(3, "failure 1"), | 61 _testStart(3, "failure 1"), |
60 _error(3, "oh no", isFailure: true), | 62 _error(3, "oh no", isFailure: true), |
61 _testDone(3, result: "failure"), | 63 _testDone(3, result: "failure"), |
62 _testStart(4, "failure 2"), | 64 _testStart(4, "failure 2"), |
63 _error(4, "oh no", isFailure: true), | 65 _error(4, "oh no", isFailure: true), |
64 _testDone(4, result: "failure"), | 66 _testDone(4, result: "failure"), |
65 _testStart(5, "failure 3"), | 67 _testStart(5, "failure 3"), |
66 _error(5, "oh no", isFailure: true), | 68 _error(5, "oh no", isFailure: true), |
67 _testDone(5, result: "failure"), | 69 _testDone(5, result: "failure"), |
68 _done(success: false) | 70 _done(success: false) |
(...skipping 17 matching lines...) Expand all Loading... |
86 }); | 88 }); |
87 | 89 |
88 test("runs failing tests along with successful tests", () { | 90 test("runs failing tests along with successful tests", () { |
89 _expectReport(""" | 91 _expectReport(""" |
90 test('failure 1', () => throw new TestFailure('oh no')); | 92 test('failure 1', () => throw new TestFailure('oh no')); |
91 test('success 1', () {}); | 93 test('success 1', () {}); |
92 test('failure 2', () => throw new TestFailure('oh no')); | 94 test('failure 2', () => throw new TestFailure('oh no')); |
93 test('success 2', () {}); | 95 test('success 2', () {}); |
94 """, [ | 96 """, [ |
95 _start, | 97 _start, |
| 98 _allSuites(), |
96 _suite(0), | 99 _suite(0), |
97 _testStart(1, "loading test.dart", groupIDs: []), | 100 _testStart(1, "loading test.dart", groupIDs: []), |
98 _testDone(1, hidden: true), | 101 _testDone(1, hidden: true), |
99 _group(2), | 102 _group(2, testCount: 4), |
100 _testStart(3, "failure 1"), | 103 _testStart(3, "failure 1"), |
101 _error(3, "oh no", isFailure: true), | 104 _error(3, "oh no", isFailure: true), |
102 _testDone(3, result: "failure"), | 105 _testDone(3, result: "failure"), |
103 _testStart(4, "success 1"), | 106 _testStart(4, "success 1"), |
104 _testDone(4), | 107 _testDone(4), |
105 _testStart(5, "failure 2"), | 108 _testStart(5, "failure 2"), |
106 _error(5, "oh no", isFailure: true), | 109 _error(5, "oh no", isFailure: true), |
107 _testDone(5, result: "failure"), | 110 _testDone(5, result: "failure"), |
108 _testStart(6, "success 2"), | 111 _testStart(6, "success 2"), |
109 _testDone(6), | 112 _testDone(6), |
110 _done(success: false) | 113 _done(success: false) |
111 ]); | 114 ]); |
112 }); | 115 }); |
113 | 116 |
114 test("gracefully handles multiple test failures in a row", () { | 117 test("gracefully handles multiple test failures in a row", () { |
115 _expectReport(""" | 118 _expectReport(""" |
116 // This completer ensures that the test isolate isn't killed until all | 119 // This completer ensures that the test isolate isn't killed until all |
117 // errors have been thrown. | 120 // errors have been thrown. |
118 var completer = new Completer(); | 121 var completer = new Completer(); |
119 test('failures', () { | 122 test('failures', () { |
120 new Future.microtask(() => throw 'first error'); | 123 new Future.microtask(() => throw 'first error'); |
121 new Future.microtask(() => throw 'second error'); | 124 new Future.microtask(() => throw 'second error'); |
122 new Future.microtask(() => throw 'third error'); | 125 new Future.microtask(() => throw 'third error'); |
123 new Future.microtask(completer.complete); | 126 new Future.microtask(completer.complete); |
124 }); | 127 }); |
125 test('wait', () => completer.future); | 128 test('wait', () => completer.future); |
126 """, [ | 129 """, [ |
127 _start, | 130 _start, |
| 131 _allSuites(), |
128 _suite(0), | 132 _suite(0), |
129 _testStart(1, "loading test.dart", groupIDs: []), | 133 _testStart(1, "loading test.dart", groupIDs: []), |
130 _testDone(1, hidden: true), | 134 _testDone(1, hidden: true), |
131 _group(2), | 135 _group(2, testCount: 2), |
132 _testStart(3, "failures"), | 136 _testStart(3, "failures"), |
133 _error(3, "first error"), | 137 _error(3, "first error"), |
134 _error(3, "second error"), | 138 _error(3, "second error"), |
135 _error(3, "third error"), | 139 _error(3, "third error"), |
136 _testDone(3, result: "error"), | 140 _testDone(3, result: "error"), |
137 _testStart(4, "wait"), | 141 _testStart(4, "wait"), |
138 _testDone(4), | 142 _testDone(4), |
139 _done(success: false) | 143 _done(success: false) |
140 ]); | 144 ]); |
141 }); | 145 }); |
(...skipping 10 matching lines...) Expand all Loading... |
152 new Future.microtask(testDone.complete); | 156 new Future.microtask(testDone.complete); |
153 throw 'oh no'; | 157 throw 'oh no'; |
154 }); | 158 }); |
155 }); | 159 }); |
156 test('wait', () { | 160 test('wait', () { |
157 waitStarted.complete(); | 161 waitStarted.complete(); |
158 return testDone.future; | 162 return testDone.future; |
159 }); | 163 }); |
160 """, [ | 164 """, [ |
161 _start, | 165 _start, |
| 166 _allSuites(), |
162 _suite(0), | 167 _suite(0), |
163 _testStart(1, "loading test.dart", groupIDs: []), | 168 _testStart(1, "loading test.dart", groupIDs: []), |
164 _testDone(1, hidden: true), | 169 _testDone(1, hidden: true), |
165 _group(2), | 170 _group(2, testCount: 2), |
166 _testStart(3, "failure"), | 171 _testStart(3, "failure"), |
167 _testDone(3), | 172 _testDone(3), |
168 _testStart(4, "wait"), | 173 _testStart(4, "wait"), |
169 _error(3, "oh no"), | 174 _error(3, "oh no"), |
170 _error(3, | 175 _error(3, |
171 "This test failed after it had already completed. Make sure to " | 176 "This test failed after it had already completed. Make sure to " |
172 "use [expectAsync]\n" | 177 "use [expectAsync]\n" |
173 "or the [completes] matcher when testing async code."), | 178 "or the [completes] matcher when testing async code."), |
174 _testDone(4), | 179 _testDone(4), |
175 _done(success: false) | 180 _done(success: false) |
176 ]); | 181 ]); |
177 }); | 182 }); |
178 | 183 |
179 test("reports each test in its proper groups", () { | 184 test("reports each test in its proper groups", () { |
180 _expectReport(""" | 185 _expectReport(""" |
181 group('group 1', () { | 186 group('group 1', () { |
182 group('.2', () { | 187 group('.2', () { |
183 group('.3', () { | 188 group('.3', () { |
184 test('success', () {}); | 189 test('success', () {}); |
185 }); | 190 }); |
186 }); | 191 }); |
187 | 192 |
188 test('success', () {}); | 193 test('success', () {}); |
189 test('success', () {}); | 194 test('success', () {}); |
190 }); | 195 }); |
191 """, [ | 196 """, [ |
192 _start, | 197 _start, |
| 198 _allSuites(), |
193 _suite(0), | 199 _suite(0), |
194 _testStart(1, "loading test.dart", groupIDs: []), | 200 _testStart(1, "loading test.dart", groupIDs: []), |
195 _testDone(1, hidden: true), | 201 _testDone(1, hidden: true), |
196 _group(2), | 202 _group(2, testCount: 3), |
197 _group(3, name: "group 1", parentID: 2), | 203 _group(3, name: "group 1", parentID: 2, testCount: 3), |
198 _group(4, name: "group 1 .2", parentID: 3), | 204 _group(4, name: "group 1 .2", parentID: 3), |
199 _group(5, name: "group 1 .2 .3", parentID: 4), | 205 _group(5, name: "group 1 .2 .3", parentID: 4), |
200 _testStart(6, 'group 1 .2 .3 success', groupIDs: [2, 3, 4, 5]), | 206 _testStart(6, 'group 1 .2 .3 success', groupIDs: [2, 3, 4, 5]), |
201 _testDone(6), | 207 _testDone(6), |
202 _testStart(7, 'group 1 success', groupIDs: [2, 3]), | 208 _testStart(7, 'group 1 success', groupIDs: [2, 3]), |
203 _testDone(7), | 209 _testDone(7), |
204 _testStart(8, 'group 1 success', groupIDs: [2, 3]), | 210 _testStart(8, 'group 1 success', groupIDs: [2, 3]), |
205 _testDone(8), | 211 _testDone(8), |
206 _done() | 212 _done() |
207 ]); | 213 ]); |
208 }); | 214 }); |
209 | 215 |
210 group("print:", () { | 216 group("print:", () { |
211 test("handles multiple prints", () { | 217 test("handles multiple prints", () { |
212 _expectReport(""" | 218 _expectReport(""" |
213 test('test', () { | 219 test('test', () { |
214 print("one"); | 220 print("one"); |
215 print("two"); | 221 print("two"); |
216 print("three"); | 222 print("three"); |
217 print("four"); | 223 print("four"); |
218 }); | 224 }); |
219 """, [ | 225 """, [ |
220 _start, | 226 _start, |
| 227 _allSuites(), |
221 _suite(0), | 228 _suite(0), |
222 _testStart(1, "loading test.dart", groupIDs: []), | 229 _testStart(1, "loading test.dart", groupIDs: []), |
223 _testDone(1, hidden: true), | 230 _testDone(1, hidden: true), |
224 _group(2), | 231 _group(2), |
225 _testStart(3, 'test'), | 232 _testStart(3, 'test'), |
226 _print(3, "one"), | 233 _print(3, "one"), |
227 _print(3, "two"), | 234 _print(3, "two"), |
228 _print(3, "three"), | 235 _print(3, "three"), |
229 _print(3, "four"), | 236 _print(3, "four"), |
230 _testDone(3), | 237 _testDone(3), |
(...skipping 16 matching lines...) Expand all Loading... |
247 new Future(testDone.complete); | 254 new Future(testDone.complete); |
248 }); | 255 }); |
249 }); | 256 }); |
250 | 257 |
251 test('wait', () { | 258 test('wait', () { |
252 waitStarted.complete(); | 259 waitStarted.complete(); |
253 return testDone.future; | 260 return testDone.future; |
254 }); | 261 }); |
255 """, [ | 262 """, [ |
256 _start, | 263 _start, |
| 264 _allSuites(), |
257 _suite(0), | 265 _suite(0), |
258 _testStart(1, "loading test.dart", groupIDs: []), | 266 _testStart(1, "loading test.dart", groupIDs: []), |
259 _testDone(1, hidden: true), | 267 _testDone(1, hidden: true), |
260 _group(2), | 268 _group(2, testCount: 2), |
261 _testStart(3, 'test'), | 269 _testStart(3, 'test'), |
262 _testDone(3), | 270 _testDone(3), |
263 _testStart(4, 'wait'), | 271 _testStart(4, 'wait'), |
264 _print(3, "one"), | 272 _print(3, "one"), |
265 _print(3, "two"), | 273 _print(3, "two"), |
266 _print(3, "three"), | 274 _print(3, "three"), |
267 _print(3, "four"), | 275 _print(3, "four"), |
268 _testDone(4), | 276 _testDone(4), |
269 _done() | 277 _done() |
270 ]); | 278 ]); |
(...skipping 18 matching lines...) Expand all Loading... |
289 }); | 297 }); |
290 | 298 |
291 print("one"); | 299 print("one"); |
292 print("two"); | 300 print("two"); |
293 throw "first error"; | 301 throw "first error"; |
294 }); | 302 }); |
295 | 303 |
296 test('wait', () => completer.future); | 304 test('wait', () => completer.future); |
297 """, [ | 305 """, [ |
298 _start, | 306 _start, |
| 307 _allSuites(), |
299 _suite(0), | 308 _suite(0), |
300 _testStart(1, "loading test.dart", groupIDs: []), | 309 _testStart(1, "loading test.dart", groupIDs: []), |
301 _testDone(1, hidden: true), | 310 _testDone(1, hidden: true), |
302 _group(2), | 311 _group(2, testCount: 2), |
303 _testStart(3, 'test'), | 312 _testStart(3, 'test'), |
304 _print(3, "one"), | 313 _print(3, "one"), |
305 _print(3, "two"), | 314 _print(3, "two"), |
306 _error(3, "first error"), | 315 _error(3, "first error"), |
307 _print(3, "three"), | 316 _print(3, "three"), |
308 _print(3, "four"), | 317 _print(3, "four"), |
309 _error(3, "second error"), | 318 _error(3, "second error"), |
310 _print(3, "five"), | 319 _print(3, "five"), |
311 _print(3, "six"), | 320 _print(3, "six"), |
312 _testDone(3, result: "error"), | 321 _testDone(3, result: "error"), |
313 _testStart(4, 'wait'), | 322 _testStart(4, 'wait'), |
314 _testDone(4), | 323 _testDone(4), |
315 _done(success: false) | 324 _done(success: false) |
316 ]); | 325 ]); |
317 }); | 326 }); |
318 }); | 327 }); |
319 | 328 |
320 group("skip:", () { | 329 group("skip:", () { |
321 test("reports skipped tests", () { | 330 test("reports skipped tests", () { |
322 _expectReport(""" | 331 _expectReport(""" |
323 test('skip 1', () {}, skip: true); | 332 test('skip 1', () {}, skip: true); |
324 test('skip 2', () {}, skip: true); | 333 test('skip 2', () {}, skip: true); |
325 test('skip 3', () {}, skip: true); | 334 test('skip 3', () {}, skip: true); |
326 """, [ | 335 """, [ |
327 _start, | 336 _start, |
| 337 _allSuites(), |
328 _suite(0), | 338 _suite(0), |
329 _testStart(1, "loading test.dart", groupIDs: []), | 339 _testStart(1, "loading test.dart", groupIDs: []), |
330 _testDone(1, hidden: true), | 340 _testDone(1, hidden: true), |
331 _group(2), | 341 _group(2, testCount: 3), |
332 _testStart(3, "skip 1", skip: true), | 342 _testStart(3, "skip 1", skip: true), |
333 _testDone(3), | 343 _testDone(3), |
334 _testStart(4, "skip 2", skip: true), | 344 _testStart(4, "skip 2", skip: true), |
335 _testDone(4), | 345 _testDone(4), |
336 _testStart(5, "skip 3", skip: true), | 346 _testStart(5, "skip 3", skip: true), |
337 _testDone(5), | 347 _testDone(5), |
338 _done() | 348 _done() |
339 ]); | 349 ]); |
340 }); | 350 }); |
341 | 351 |
342 test("reports skipped groups", () { | 352 test("reports skipped groups", () { |
343 _expectReport(""" | 353 _expectReport(""" |
344 group('skip', () { | 354 group('skip', () { |
345 test('success 1', () {}); | 355 test('success 1', () {}); |
346 test('success 2', () {}); | 356 test('success 2', () {}); |
347 test('success 3', () {}); | 357 test('success 3', () {}); |
348 }, skip: true); | 358 }, skip: true); |
349 """, [ | 359 """, [ |
350 _start, | 360 _start, |
| 361 _allSuites(), |
351 _suite(0), | 362 _suite(0), |
352 _testStart(1, "loading test.dart", groupIDs: []), | 363 _testStart(1, "loading test.dart", groupIDs: []), |
353 _testDone(1, hidden: true), | 364 _testDone(1, hidden: true), |
354 _group(2), | 365 _group(2, testCount: 0), |
355 _group(3, name: "skip", parentID: 2, skip: true), | 366 _group(3, name: "skip", parentID: 2, skip: true, testCount: 0), |
356 _testStart(4, "skip", groupIDs: [2, 3], skip: true), | 367 _testStart(4, "skip", groupIDs: [2, 3], skip: true), |
357 _testDone(4), | 368 _testDone(4), |
358 _done() | 369 _done() |
359 ]); | 370 ]); |
360 }); | 371 }); |
361 | 372 |
362 test("reports the skip reason if available", () { | 373 test("reports the skip reason if available", () { |
363 _expectReport(""" | 374 _expectReport(""" |
364 test('skip 1', () {}, skip: 'some reason'); | 375 test('skip 1', () {}, skip: 'some reason'); |
365 test('skip 2', () {}, skip: 'or another'); | 376 test('skip 2', () {}, skip: 'or another'); |
366 """, [ | 377 """, [ |
367 _start, | 378 _start, |
| 379 _allSuites(), |
368 _suite(0), | 380 _suite(0), |
369 _testStart(1, "loading test.dart", groupIDs: []), | 381 _testStart(1, "loading test.dart", groupIDs: []), |
370 _testDone(1, hidden: true), | 382 _testDone(1, hidden: true), |
371 _group(2), | 383 _group(2, testCount: 2), |
372 _testStart(3, "skip 1", skip: "some reason"), | 384 _testStart(3, "skip 1", skip: "some reason"), |
373 _testDone(3), | 385 _testDone(3), |
374 _testStart(4, "skip 2", skip: "or another"), | 386 _testStart(4, "skip 2", skip: "or another"), |
375 _testDone(4), | 387 _testDone(4), |
376 _done() | 388 _done() |
377 ]); | 389 ]); |
378 }); | 390 }); |
379 }); | 391 }); |
380 } | 392 } |
381 | 393 |
(...skipping 27 matching lines...) Expand all Loading... |
409 // Remove excess trailing whitespace. | 421 // Remove excess trailing whitespace. |
410 for (var i = 0; i < stdoutLines.length; i++) { | 422 for (var i = 0; i < stdoutLines.length; i++) { |
411 var event = JSON.decode(stdoutLines[i]); | 423 var event = JSON.decode(stdoutLines[i]); |
412 expect(event.remove("time"), new isInstanceOf<int>()); | 424 expect(event.remove("time"), new isInstanceOf<int>()); |
413 event.remove("stackTrace"); | 425 event.remove("stackTrace"); |
414 expect(event, equals(expected[i])); | 426 expect(event, equals(expected[i])); |
415 } | 427 } |
416 }); | 428 }); |
417 } | 429 } |
418 | 430 |
| 431 /// Returns the event emitted by the JSON reporter providing information about |
| 432 /// all suites. |
| 433 /// |
| 434 /// The [count] defaults to 1. |
| 435 Map _allSuites({int count}) { |
| 436 return { |
| 437 "type": "allSuites", |
| 438 "count": count ?? 1 |
| 439 }; |
| 440 } |
| 441 |
419 /// Returns the event emitted by the JSON reporter indicating that a suite has | 442 /// Returns the event emitted by the JSON reporter indicating that a suite has |
420 /// begun running. | 443 /// begun running. |
421 /// | 444 /// |
422 /// The [platform] defaults to `"vm"`, the [path] defaults to `"test.dart"`. | 445 /// The [platform] defaults to `"vm"`, the [path] defaults to `"test.dart"`. |
423 Map _suite(int id, {String platform, String path}) { | 446 Map _suite(int id, {String platform, String path}) { |
424 return { | 447 return { |
425 "type": "suite", | 448 "type": "suite", |
426 "suite": { | 449 "suite": { |
427 "id": id, | 450 "id": id, |
428 "platform": platform ?? "vm", | 451 "platform": platform ?? "vm", |
429 "path": path ?? "test.dart" | 452 "path": path ?? "test.dart" |
430 } | 453 } |
431 }; | 454 }; |
432 } | 455 } |
433 | 456 |
434 /// Returns the event emitted by the JSON reporter indicating that a group has | 457 /// Returns the event emitted by the JSON reporter indicating that a group has |
435 /// begun running. | 458 /// begun running. |
436 /// | 459 /// |
437 /// If [skip] is `true`, the group is expected to be marked as skipped without a | 460 /// If [skip] is `true`, the group is expected to be marked as skipped without a |
438 /// reason. If it's a [String], the group is expected to be marked as skipped | 461 /// reason. If it's a [String], the group is expected to be marked as skipped |
439 /// with that reason. | 462 /// with that reason. |
440 Map _group(int id, {String name, int suiteID, int parentID, skip}) { | 463 /// |
| 464 /// The [testCount] parameter indicates the number of tests in the group. It |
| 465 /// defaults to 1. |
| 466 Map _group(int id, {String name, int suiteID, int parentID, skip, |
| 467 int testCount}) { |
441 return { | 468 return { |
442 "type": "group", | 469 "type": "group", |
443 "group": { | 470 "group": { |
444 "id": id, | 471 "id": id, |
445 "name": name, | 472 "name": name, |
446 "suiteID": suiteID ?? 0, | 473 "suiteID": suiteID ?? 0, |
447 "parentID": parentID, | 474 "parentID": parentID, |
448 "metadata": _metadata(skip: skip) | 475 "metadata": _metadata(skip: skip), |
| 476 "testCount": testCount ?? 1 |
449 } | 477 } |
450 }; | 478 }; |
451 } | 479 } |
452 | 480 |
453 /// Returns the event emitted by the JSON reporter indicating that a test has | 481 /// Returns the event emitted by the JSON reporter indicating that a test has |
454 /// begun running. | 482 /// begun running. |
455 /// | 483 /// |
456 /// If [parentIDs] is passed, it's the IDs of groups containing this test. If | 484 /// If [parentIDs] is passed, it's the IDs of groups containing this test. If |
457 /// [skip] is `true`, the test is expected to be marked as skipped without a | 485 /// [skip] is `true`, the test is expected to be marked as skipped without a |
458 /// reason. If it's a [String], the test is expected to be marked as skipped | 486 /// reason. If it's a [String], the test is expected to be marked as skipped |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 /// Returns the serialized metadata corresponding to [skip]. | 543 /// Returns the serialized metadata corresponding to [skip]. |
516 Map _metadata({skip}) { | 544 Map _metadata({skip}) { |
517 if (skip == true) { | 545 if (skip == true) { |
518 return {"skip": true, "skipReason": null}; | 546 return {"skip": true, "skipReason": null}; |
519 } else if (skip is String) { | 547 } else if (skip is String) { |
520 return {"skip": true, "skipReason": skip}; | 548 return {"skip": true, "skipReason": skip}; |
521 } else { | 549 } else { |
522 return {"skip": false, "skipReason": null}; | 550 return {"skip": false, "skipReason": null}; |
523 } | 551 } |
524 } | 552 } |
OLD | NEW |