OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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:path/path.dart' as p; | 9 import 'package:path/path.dart' as p; |
10 import 'package:scheduled_test/descriptor.dart' as d; | 10 import 'package:scheduled_test/descriptor.dart' as d; |
11 import 'package:scheduled_test/scheduled_stream.dart'; | 11 import 'package:scheduled_test/scheduled_stream.dart'; |
12 import 'package:scheduled_test/scheduled_test.dart'; | 12 import 'package:scheduled_test/scheduled_test.dart'; |
| 13 import 'package:test/src/util/io.dart'; |
13 | 14 |
14 import '../../io.dart'; | 15 import '../../io.dart'; |
15 | 16 |
16 void main() { | 17 void main() { |
17 useSandbox(); | 18 useSandbox(); |
18 | 19 |
19 test("ignores an empty file", () { | 20 test("ignores an empty file", () { |
20 d.file("dart_test.yaml", "").create(); | 21 d.file("dart_test.yaml", "").create(); |
21 | 22 |
22 d.file("test.dart", """ | 23 d.file("test.dart", """ |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 test("test", () {}); | 103 test("test", () {}); |
103 } | 104 } |
104 """).create(); | 105 """).create(); |
105 | 106 |
106 var test = runTest(["test.dart"]); | 107 var test = runTest(["test.dart"]); |
107 test.stdout.expect(consumeThrough(contains('Tests are boring.'))); | 108 test.stdout.expect(consumeThrough(contains('Tests are boring.'))); |
108 test.stdout.expect(consumeThrough(contains('All tests skipped.'))); | 109 test.stdout.expect(consumeThrough(contains('All tests skipped.'))); |
109 test.shouldExit(0); | 110 test.shouldExit(0); |
110 }); | 111 }); |
111 | 112 |
112 test("runs tests on a platform that matches test_on", () { | 113 group("test_on", () { |
113 d.file("dart_test.yaml", JSON.encode({ | 114 test("runs tests on a platform matching platform", () { |
114 "test_on": "vm" | 115 d.file("dart_test.yaml", JSON.encode({ |
115 })).create(); | 116 "test_on": "vm" |
| 117 })).create(); |
116 | 118 |
117 d.file("test.dart", """ | 119 d.file("test.dart", """ |
118 import 'package:test/test.dart'; | 120 import 'package:test/test.dart'; |
119 | 121 |
120 void main() { | 122 void main() { |
121 test("test", () {}); | 123 test("test", () {}); |
122 } | 124 } |
123 """).create(); | 125 """).create(); |
124 | 126 |
125 var test = runTest(["test.dart"]); | 127 var test = runTest(["test.dart"]); |
126 test.stdout.expect(consumeThrough(contains('All tests passed!'))); | 128 test.stdout.expect(consumeThrough(contains('All tests passed!'))); |
127 test.shouldExit(0); | 129 test.shouldExit(0); |
128 }); | 130 }); |
129 | 131 |
130 test("doesn't run tests on a platform that doesn't match test_on", () { | 132 test("warns about the VM when no OSes are supported", () { |
131 d.file("dart_test.yaml", JSON.encode({ | 133 d.file("dart_test.yaml", JSON.encode({ |
132 "test_on": "chrome" | 134 "test_on": "chrome" |
133 })).create(); | 135 })).create(); |
134 | 136 |
135 d.file("test.dart", """ | 137 d.file("test.dart", """ |
136 import 'package:test/test.dart'; | 138 import 'package:test/test.dart'; |
137 | 139 |
138 void main() { | 140 void main() { |
139 test("test", () {}); | 141 test("test", () {}); |
140 } | 142 } |
141 """).create(); | 143 """).create(); |
142 | 144 |
143 var test = runTest(["test.dart"]); | 145 var test = runTest(["test.dart"]); |
144 test.stdout.expect(consumeThrough(contains('No tests ran.'))); | 146 test.stderr.expect( |
145 test.shouldExit(0); | 147 "Warning: this package doesn't support running tests on the Dart " |
| 148 "VM."); |
| 149 test.stdout.expect(consumeThrough(contains('No tests ran.'))); |
| 150 test.shouldExit(0); |
| 151 }); |
| 152 |
| 153 test("warns about the OS when some OSes are supported", () { |
| 154 d.file("dart_test.yaml", JSON.encode({ |
| 155 "test_on": otherOS |
| 156 })).create(); |
| 157 |
| 158 d.file("test.dart", """ |
| 159 import 'package:test/test.dart'; |
| 160 |
| 161 void main() { |
| 162 test("test", () {}); |
| 163 } |
| 164 """).create(); |
| 165 |
| 166 var test = runTest(["test.dart"]); |
| 167 test.stderr.expect( |
| 168 "Warning: this package doesn't support running tests on " |
| 169 "${currentOS.name}."); |
| 170 test.stdout.expect(consumeThrough(contains('No tests ran.'))); |
| 171 test.shouldExit(0); |
| 172 }); |
| 173 |
| 174 test("warns about browsers in general when no browsers are supported", () { |
| 175 d.file("dart_test.yaml", JSON.encode({ |
| 176 "test_on": "vm" |
| 177 })).create(); |
| 178 |
| 179 d.file("test.dart", """ |
| 180 import 'package:test/test.dart'; |
| 181 |
| 182 void main() { |
| 183 test("test", () {}); |
| 184 } |
| 185 """).create(); |
| 186 |
| 187 var test = runTest(["-p", "chrome", "test.dart"]); |
| 188 test.stderr.expect( |
| 189 "Warning: this package doesn't support running tests on browsers."); |
| 190 test.stdout.expect(consumeThrough(contains('No tests ran.'))); |
| 191 test.shouldExit(0); |
| 192 }); |
| 193 |
| 194 test("warns about specific browsers when specific browsers are " |
| 195 "supported", () { |
| 196 d.file("dart_test.yaml", JSON.encode({ |
| 197 "test_on": "safari" |
| 198 })).create(); |
| 199 |
| 200 d.file("test.dart", """ |
| 201 import 'package:test/test.dart'; |
| 202 |
| 203 void main() { |
| 204 test("test", () {}); |
| 205 } |
| 206 """).create(); |
| 207 |
| 208 var test = runTest(["-p", "chrome,firefox,phantomjs", "test.dart"]); |
| 209 test.stderr.expect( |
| 210 "Warning: this package doesn't support running tests on Chrome, " |
| 211 "Firefox, or PhantomJS."); |
| 212 test.stdout.expect(consumeThrough(contains('No tests ran.'))); |
| 213 test.shouldExit(0); |
| 214 }); |
146 }); | 215 }); |
147 | 216 |
148 test("uses the specified reporter", () { | 217 test("uses the specified reporter", () { |
149 d.file("dart_test.yaml", JSON.encode({ | 218 d.file("dart_test.yaml", JSON.encode({ |
150 "reporter": "json" | 219 "reporter": "json" |
151 })).create(); | 220 })).create(); |
152 | 221 |
153 d.file("test.dart", """ | 222 d.file("test.dart", """ |
154 import 'package:test/test.dart'; | 223 import 'package:test/test.dart'; |
155 | 224 |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 test("failure", () => throw "oh no"); | 443 test("failure", () => throw "oh no"); |
375 } | 444 } |
376 """) | 445 """) |
377 ]).create(); | 446 ]).create(); |
378 | 447 |
379 var test = runTest([]); | 448 var test = runTest([]); |
380 test.stdout.expect(consumeThrough(contains('All tests passed!'))); | 449 test.stdout.expect(consumeThrough(contains('All tests passed!'))); |
381 test.shouldExit(0); | 450 test.shouldExit(0); |
382 }); | 451 }); |
383 } | 452 } |
OLD | NEW |