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 import 'dart:async'; | 5 import 'dart:async'; |
6 | 6 |
7 import 'package:test/src/backend/group.dart'; | 7 import 'package:test/src/backend/group.dart'; |
8 import 'package:test/src/backend/state.dart'; | 8 import 'package:test/src/backend/state.dart'; |
9 import 'package:test/src/runner/engine.dart'; | 9 import 'package:test/src/runner/engine.dart'; |
10 import 'package:test/test.dart'; | 10 import 'package:test/test.dart'; |
11 | 11 |
12 import '../utils.dart'; | 12 import '../utils.dart'; |
13 | 13 |
14 void main() { | 14 void main() { |
15 test("runs each test in each suite in order", () async { | 15 test("runs each test in each suite in order", () async { |
16 var testsRun = 0; | 16 var testsRun = 0; |
17 var tests = declare(() { | 17 var tests = declare(() { |
18 for (var i = 0; i < 4; i++) { | 18 for (var i = 0; i < 4; i++) { |
19 test("test ${i + 1}", expectAsync(() { | 19 test("test ${i + 1}", expectAsync0(() { |
20 expect(testsRun, equals(i)); | 20 expect(testsRun, equals(i)); |
21 testsRun++; | 21 testsRun++; |
22 }, max: 1)); | 22 }, max: 1)); |
23 } | 23 } |
24 }); | 24 }); |
25 | 25 |
26 var engine = new Engine.withSuites([ | 26 var engine = new Engine.withSuites([ |
27 runnerSuite(new Group.root(tests.take(2))), | 27 runnerSuite(new Group.root(tests.take(2))), |
28 runnerSuite(new Group.root(tests.skip(2))) | 28 runnerSuite(new Group.root(tests.skip(2))) |
29 ]); | 29 ]); |
30 | 30 |
31 await engine.run(); | 31 await engine.run(); |
32 expect(testsRun, equals(4)); | 32 expect(testsRun, equals(4)); |
33 }); | 33 }); |
34 | 34 |
35 test("runs tests in a suite added after run() was called", () { | 35 test("runs tests in a suite added after run() was called", () { |
36 var testsRun = 0; | 36 var testsRun = 0; |
37 var tests = declare(() { | 37 var tests = declare(() { |
38 for (var i = 0; i < 4; i++) { | 38 for (var i = 0; i < 4; i++) { |
39 test("test ${i + 1}", expectAsync(() { | 39 test("test ${i + 1}", expectAsync0(() { |
40 expect(testsRun, equals(i)); | 40 expect(testsRun, equals(i)); |
41 testsRun++; | 41 testsRun++; |
42 }, max: 1)); | 42 }, max: 1)); |
43 } | 43 } |
44 }); | 44 }); |
45 | 45 |
46 var engine = new Engine(); | 46 var engine = new Engine(); |
47 expect(engine.run().then((_) { | 47 expect(engine.run().then((_) { |
48 expect(testsRun, equals(4)); | 48 expect(testsRun, equals(4)); |
49 }), completes); | 49 }), completes); |
50 | 50 |
51 engine.suiteSink.add(runnerSuite(new Group.root(tests))); | 51 engine.suiteSink.add(runnerSuite(new Group.root(tests))); |
52 engine.suiteSink.close(); | 52 engine.suiteSink.close(); |
53 }); | 53 }); |
54 | 54 |
55 test("emits each test before it starts running and after the previous test " | 55 test("emits each test before it starts running and after the previous test " |
56 "finished", () { | 56 "finished", () { |
57 var testsRun = 0; | 57 var testsRun = 0; |
58 var engine = declareEngine(() { | 58 var engine = declareEngine(() { |
59 for (var i = 0; i < 3; i++) { | 59 for (var i = 0; i < 3; i++) { |
60 test("test ${i + 1}", expectAsync(() => testsRun++, max: 1)); | 60 test("test ${i + 1}", expectAsync0(() => testsRun++, max: 1)); |
61 } | 61 } |
62 }); | 62 }); |
63 | 63 |
64 engine.onTestStarted.listen(expectAsync((liveTest) { | 64 engine.onTestStarted.listen(expectAsync1((liveTest) { |
65 // [testsRun] should be one less than the test currently running. | 65 // [testsRun] should be one less than the test currently running. |
66 expect(liveTest.test.name, equals("test ${testsRun + 1}")); | 66 expect(liveTest.test.name, equals("test ${testsRun + 1}")); |
67 | 67 |
68 // [Engine.onTestStarted] is guaranteed to fire before the first | 68 // [Engine.onTestStarted] is guaranteed to fire before the first |
69 // [LiveTest.onStateChange]. | 69 // [LiveTest.onStateChange]. |
70 expect(liveTest.onStateChange.first, | 70 expect(liveTest.onStateChange.first, |
71 completion(equals(const State(Status.running, Result.success)))); | 71 completion(equals(const State(Status.running, Result.success)))); |
72 }, count: 3, max: 3)); | 72 }, count: 3, max: 3)); |
73 | 73 |
74 return engine.run(); | 74 return engine.run(); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 var engine = new Engine.withSuites([]); | 110 var engine = new Engine.withSuites([]); |
111 expect(engine.run(), completes); | 111 expect(engine.run(), completes); |
112 expect(engine.run, throwsStateError); | 112 expect(engine.run, throwsStateError); |
113 }); | 113 }); |
114 | 114 |
115 test("runs tearDown after a test times out", () { | 115 test("runs tearDown after a test times out", () { |
116 // Declare this here so the expect is in the context of this test, rather | 116 // Declare this here so the expect is in the context of this test, rather |
117 // than the inner test. | 117 // than the inner test. |
118 var secondTestStarted = false; | 118 var secondTestStarted = false; |
119 var firstTestFinished = false; | 119 var firstTestFinished = false; |
120 var tearDownBody = expectAsync(() { | 120 var tearDownBody = expectAsync0(() { |
121 expect(secondTestStarted, isFalse); | 121 expect(secondTestStarted, isFalse); |
122 expect(firstTestFinished, isFalse); | 122 expect(firstTestFinished, isFalse); |
123 }); | 123 }); |
124 | 124 |
125 var engine = declareEngine(() { | 125 var engine = declareEngine(() { |
126 // This ensures that the first test doesn't actually finish until the | 126 // This ensures that the first test doesn't actually finish until the |
127 // second test runs. | 127 // second test runs. |
128 var firstTestCompleter = new Completer(); | 128 var firstTestCompleter = new Completer(); |
129 | 129 |
130 group("group", () { | 130 group("group", () { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 expect(bodyRun, isTrue); | 166 expect(bodyRun, isTrue); |
167 }); | 167 }); |
168 | 168 |
169 test("exposes a LiveTest that emits the correct states", () { | 169 test("exposes a LiveTest that emits the correct states", () { |
170 var tests = declare(() { | 170 var tests = declare(() { |
171 test("test", () {}, skip: true); | 171 test("test", () {}, skip: true); |
172 }); | 172 }); |
173 | 173 |
174 var engine = new Engine.withSuites([runnerSuite(new Group.root(tests))]); | 174 var engine = new Engine.withSuites([runnerSuite(new Group.root(tests))]); |
175 | 175 |
176 engine.onTestStarted.listen(expectAsync((liveTest) { | 176 engine.onTestStarted.listen(expectAsync1((liveTest) { |
177 expect(liveTest, same(engine.liveTests.single)); | 177 expect(liveTest, same(engine.liveTests.single)); |
178 expect(liveTest.test.name, equals(tests.single.name)); | 178 expect(liveTest.test.name, equals(tests.single.name)); |
179 | 179 |
180 var i = 0; | 180 var i = 0; |
181 liveTest.onStateChange.listen(expectAsync((state) { | 181 liveTest.onStateChange.listen(expectAsync1((state) { |
182 if (i == 0) { | 182 if (i == 0) { |
183 expect(state, equals(const State(Status.running, Result.success))); | 183 expect(state, equals(const State(Status.running, Result.success))); |
184 } else if (i == 1) { | 184 } else if (i == 1) { |
185 expect(state, equals(const State(Status.running, Result.skipped))); | 185 expect(state, equals(const State(Status.running, Result.skipped))); |
186 } else if (i == 2) { | 186 } else if (i == 2) { |
187 expect(state, equals(const State(Status.complete, Result.skipped))); | 187 expect(state, equals(const State(Status.complete, Result.skipped))); |
188 } | 188 } |
189 i++; | 189 i++; |
190 }, count: 3)); | 190 }, count: 3)); |
191 | 191 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 test("exposes a LiveTest that emits the correct states", () { | 224 test("exposes a LiveTest that emits the correct states", () { |
225 var entries = declare(() { | 225 var entries = declare(() { |
226 group("group", () { | 226 group("group", () { |
227 test("test", () => bodyRun = true); | 227 test("test", () => bodyRun = true); |
228 }, skip: true); | 228 }, skip: true); |
229 }); | 229 }); |
230 | 230 |
231 var engine = new Engine.withSuites( | 231 var engine = new Engine.withSuites( |
232 [runnerSuite(new Group.root(entries))]); | 232 [runnerSuite(new Group.root(entries))]); |
233 | 233 |
234 engine.onTestStarted.listen(expectAsync((liveTest) { | 234 engine.onTestStarted.listen(expectAsync1((liveTest) { |
235 expect(liveTest, same(engine.liveTests.single)); | 235 expect(liveTest, same(engine.liveTests.single)); |
236 expect(liveTest.test.name, equals("group test")); | 236 expect(liveTest.test.name, equals("group test")); |
237 | 237 |
238 var i = 0; | 238 var i = 0; |
239 liveTest.onStateChange.listen(expectAsync((state) { | 239 liveTest.onStateChange.listen(expectAsync1((state) { |
240 if (i == 0) { | 240 if (i == 0) { |
241 expect(state, equals(const State(Status.running, Result.success))); | 241 expect(state, equals(const State(Status.running, Result.success))); |
242 } else if (i == 1) { | 242 } else if (i == 1) { |
243 expect(state, equals(const State(Status.running, Result.skipped))); | 243 expect(state, equals(const State(Status.running, Result.skipped))); |
244 } else if (i == 2) { | 244 } else if (i == 2) { |
245 expect(state, equals(const State(Status.complete, Result.skipped))); | 245 expect(state, equals(const State(Status.complete, Result.skipped))); |
246 } | 246 } |
247 i++; | 247 i++; |
248 }, count: 3)); | 248 }, count: 3)); |
249 | 249 |
250 expect(liveTest.onComplete, completes); | 250 expect(liveTest.onComplete, completes); |
251 })); | 251 })); |
252 | 252 |
253 return engine.run(); | 253 return engine.run(); |
254 }); | 254 }); |
255 }); | 255 }); |
256 } | 256 } |
OLD | NEW |