Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Side by Side Diff: test/runner/engine_test.dart

Issue 1400743002: Add support for setUpAll and tearDownAll. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/runner/browser/runner_test.dart ('k') | test/runner/set_up_all_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 'package:test/src/backend/group.dart'; 5 import 'package:test/src/backend/group.dart';
6 import 'package:test/src/backend/state.dart'; 6 import 'package:test/src/backend/state.dart';
7 import 'package:test/src/backend/test.dart'; 7 import 'package:test/src/backend/test.dart';
8 import 'package:test/src/runner/engine.dart'; 8 import 'package:test/src/runner/engine.dart';
9 import 'package:test/src/runner/runner_suite.dart'; 9 import 'package:test/src/runner/runner_suite.dart';
10 import 'package:test/src/runner/vm/environment.dart'; 10 import 'package:test/src/runner/vm/environment.dart';
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 }), completes); 50 }), completes);
51 51
52 engine.suiteSink.add( 52 engine.suiteSink.add(
53 new RunnerSuite(const VMEnvironment(), new Group.root(tests))); 53 new RunnerSuite(const VMEnvironment(), new Group.root(tests)));
54 engine.suiteSink.close(); 54 engine.suiteSink.close();
55 }); 55 });
56 56
57 test("emits each test before it starts running and after the previous test " 57 test("emits each test before it starts running and after the previous test "
58 "finished", () { 58 "finished", () {
59 var testsRun = 0; 59 var testsRun = 0;
60 var engine = withTests(declare(() { 60 var engine = declareEngine(() {
61 for (var i = 0; i < 3; i++) { 61 for (var i = 0; i < 3; i++) {
62 test("test ${i + 1}", expectAsync(() => testsRun++, max: 1)); 62 test("test ${i + 1}", expectAsync(() => testsRun++, max: 1));
63 } 63 }
64 })); 64 });
65 65
66 engine.onTestStarted.listen(expectAsync((liveTest) { 66 engine.onTestStarted.listen(expectAsync((liveTest) {
67 // [testsRun] should be one less than the test currently running. 67 // [testsRun] should be one less than the test currently running.
68 expect(liveTest.test.name, equals("test ${testsRun + 1}")); 68 expect(liveTest.test.name, equals("test ${testsRun + 1}"));
69 69
70 // [Engine.onTestStarted] is guaranteed to fire before the first 70 // [Engine.onTestStarted] is guaranteed to fire before the first
71 // [LiveTest.onStateChange]. 71 // [LiveTest.onStateChange].
72 expect(liveTest.onStateChange.first, 72 expect(liveTest.onStateChange.first,
73 completion(equals(const State(Status.running, Result.success)))); 73 completion(equals(const State(Status.running, Result.success))));
74 }, count: 3, max: 3)); 74 }, count: 3, max: 3));
75 75
76 return engine.run(); 76 return engine.run();
77 }); 77 });
78 78
79 test(".run() returns true if every test passes", () { 79 test(".run() returns true if every test passes", () {
80 var engine = withTests(declare(() { 80 var engine = declareEngine(() {
81 for (var i = 0; i < 2; i++) { 81 for (var i = 0; i < 2; i++) {
82 test("test ${i + 1}", () {}); 82 test("test ${i + 1}", () {});
83 } 83 }
84 })); 84 });
85 85
86 expect(engine.run(), completion(isTrue)); 86 expect(engine.run(), completion(isTrue));
87 }); 87 });
88 88
89 test(".run() returns false if any test fails", () { 89 test(".run() returns false if any test fails", () {
90 var engine = withTests(declare(() { 90 var engine = declareEngine(() {
91 for (var i = 0; i < 2; i++) { 91 for (var i = 0; i < 2; i++) {
92 test("test ${i + 1}", () {}); 92 test("test ${i + 1}", () {});
93 } 93 }
94 test("failure", () => throw new TestFailure("oh no")); 94 test("failure", () => throw new TestFailure("oh no"));
95 })); 95 });
96 96
97 expect(engine.run(), completion(isFalse)); 97 expect(engine.run(), completion(isFalse));
98 }); 98 });
99 99
100 test(".run() returns false if any test errors", () { 100 test(".run() returns false if any test errors", () {
101 var engine = withTests(declare(() { 101 var engine = declareEngine(() {
102 for (var i = 0; i < 2; i++) { 102 for (var i = 0; i < 2; i++) {
103 test("test ${i + 1}", () {}); 103 test("test ${i + 1}", () {});
104 } 104 }
105 test("failure", () => throw "oh no"); 105 test("failure", () => throw "oh no");
106 })); 106 });
107 107
108 expect(engine.run(), completion(isFalse)); 108 expect(engine.run(), completion(isFalse));
109 }); 109 });
110 110
111 test(".run() may not be called more than once", () { 111 test(".run() may not be called more than once", () {
112 var engine = new Engine.withSuites([]); 112 var engine = new Engine.withSuites([]);
113 expect(engine.run(), completes); 113 expect(engine.run(), completes);
114 expect(engine.run, throwsStateError); 114 expect(engine.run, throwsStateError);
115 }); 115 });
116 116
117 group("for a skipped test", () { 117 group("for a skipped test", () {
118 test("doesn't run the test's body", () async { 118 test("doesn't run the test's body", () async {
119 var bodyRun = false; 119 var bodyRun = false;
120 var engine = withTests(declare(() { 120 var engine = declareEngine(() {
121 test("test", () => bodyRun = true, skip: true); 121 test("test", () => bodyRun = true, skip: true);
122 })); 122 });
123 123
124 await engine.run(); 124 await engine.run();
125 expect(bodyRun, isFalse); 125 expect(bodyRun, isFalse);
126 }); 126 });
127 127
128 test("exposes a LiveTest that emits the correct states", () { 128 test("exposes a LiveTest that emits the correct states", () {
129 var tests = declare(() { 129 var tests = declare(() {
130 test("test", () {}, skip: true); 130 test("test", () {}, skip: true);
131 }); 131 });
132 132
133 var engine = withTests(tests); 133 var engine = new Engine.withSuites([
134 new RunnerSuite(const VMEnvironment(), new Group.root(tests))
135 ]);
134 136
135 engine.onTestStarted.listen(expectAsync((liveTest) { 137 engine.onTestStarted.listen(expectAsync((liveTest) {
136 expect(liveTest, same(engine.liveTests.single)); 138 expect(liveTest, same(engine.liveTests.single));
137 expect(liveTest.test.name, equals(tests.single.name)); 139 expect(liveTest.test.name, equals(tests.single.name));
138 140
139 var first = true; 141 var first = true;
140 liveTest.onStateChange.listen(expectAsync((state) { 142 liveTest.onStateChange.listen(expectAsync((state) {
141 expect(state, equals(first 143 expect(state, equals(first
142 ? const State(Status.running, Result.success) 144 ? const State(Status.running, Result.success)
143 : const State(Status.complete, Result.success))); 145 : const State(Status.complete, Result.success)));
144 first = false; 146 first = false;
145 }, count: 2)); 147 }, count: 2));
146 148
147 expect(liveTest.onComplete, completes); 149 expect(liveTest.onComplete, completes);
148 })); 150 }));
149 151
150 return engine.run(); 152 return engine.run();
151 }); 153 });
152 }); 154 });
153 } 155 }
154
155 /// Returns an engine that will run [tests].
156 Engine withTests(List<Test> tests) {
157 return new Engine.withSuites([
158 new RunnerSuite(const VMEnvironment(), new Group.root(tests))
159 ]);
160 }
OLDNEW
« no previous file with comments | « test/runner/browser/runner_test.dart ('k') | test/runner/set_up_all_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698