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

Side by Side Diff: lib/src/executable.dart

Issue 1100873005: Add a --reporter flag and expose the expanded reporter. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Code review changes Created 5 years, 8 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 | « CHANGELOG.md ('k') | lib/src/runner/engine.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 // TODO(nweiz): This is under lib so that it can be used by the unittest dummy 5 // TODO(nweiz): This is under lib so that it can be used by the unittest dummy
6 // package. Once that package is no longer being updated, move this back into 6 // package. Once that package is no longer being updated, move this back into
7 // bin. 7 // bin.
8 library test.executable; 8 library test.executable;
9 9
10 import 'dart:async'; 10 import 'dart:async';
11 import 'dart:io'; 11 import 'dart:io';
12 import 'dart:math' as math; 12 import 'dart:math' as math;
13 13
14 import 'package:args/args.dart'; 14 import 'package:args/args.dart';
15 import 'package:stack_trace/stack_trace.dart'; 15 import 'package:stack_trace/stack_trace.dart';
16 import 'package:yaml/yaml.dart'; 16 import 'package:yaml/yaml.dart';
17 17
18 import 'backend/test_platform.dart'; 18 import 'backend/test_platform.dart';
19 import 'runner/reporter/compact.dart'; 19 import 'runner/reporter/compact.dart';
20 import 'runner/reporter/expanded.dart';
20 import 'runner/application_exception.dart'; 21 import 'runner/application_exception.dart';
21 import 'runner/load_exception.dart'; 22 import 'runner/load_exception.dart';
22 import 'runner/load_exception_suite.dart'; 23 import 'runner/load_exception_suite.dart';
23 import 'runner/loader.dart'; 24 import 'runner/loader.dart';
24 import 'util/exit_codes.dart' as exit_codes; 25 import 'util/exit_codes.dart' as exit_codes;
25 import 'util/io.dart'; 26 import 'util/io.dart';
26 import 'utils.dart'; 27 import 'utils.dart';
27 28
28 /// The argument parser used to parse the executable arguments. 29 /// The argument parser used to parse the executable arguments.
29 final _parser = new ArgParser(allowTrailingOptions: true); 30 final _parser = new ArgParser(allowTrailingOptions: true);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 allowMultiple: true); 99 allowMultiple: true);
99 _parser.addOption("concurrency", 100 _parser.addOption("concurrency",
100 abbr: 'j', 101 abbr: 'j',
101 help: 'The number of concurrent test suites run.\n' 102 help: 'The number of concurrent test suites run.\n'
102 '(defaults to $_defaultConcurrency)', 103 '(defaults to $_defaultConcurrency)',
103 valueHelp: 'threads'); 104 valueHelp: 'threads');
104 _parser.addOption("pub-serve", 105 _parser.addOption("pub-serve",
105 help: 'The port of a pub serve instance serving "test/".', 106 help: 'The port of a pub serve instance serving "test/".',
106 hide: !supportsPubServe, 107 hide: !supportsPubServe,
107 valueHelp: 'port'); 108 valueHelp: 'port');
109 _parser.addOption("reporter",
110 abbr: 'r',
111 help: 'The runner used to print test results.',
112 allowed: ['compact', 'expanded'],
113 defaultsTo: Platform.isWindows ? 'expanded' : 'compact',
114 allowedHelp: {
115 'compact': 'A single line, updated continuously.',
116 'expanded': 'A separate line for each update.'
117 });
108 _parser.addFlag("color", defaultsTo: null, 118 _parser.addFlag("color", defaultsTo: null,
109 help: 'Whether to use terminal colors.\n(auto-detected by default)'); 119 help: 'Whether to use terminal colors.\n(auto-detected by default)');
110 120
111 var options; 121 var options;
112 try { 122 try {
113 options = _parser.parse(args); 123 options = _parser.parse(args);
114 } on FormatException catch (error) { 124 } on FormatException catch (error) {
115 _printUsage(error.message); 125 _printUsage(error.message);
116 exitCode = exit_codes.usage; 126 exitCode = exit_codes.usage;
117 return; 127 return;
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 if (pattern is RegExp) { 240 if (pattern is RegExp) {
231 stderr.writeln('regular expression "${pattern.pattern}".'); 241 stderr.writeln('regular expression "${pattern.pattern}".');
232 } else { 242 } else {
233 stderr.writeln('"$pattern".'); 243 stderr.writeln('"$pattern".');
234 } 244 }
235 exitCode = exit_codes.data; 245 exitCode = exit_codes.data;
236 return null; 246 return null;
237 } 247 }
238 } 248 }
239 249
240 var reporter = new CompactReporter(flatten(suites), 250 var reporter = options["reporter"] == "compact"
241 concurrency: concurrency, color: color); 251 ? new CompactReporter(flatten(suites),
252 concurrency: concurrency, color: color)
253 : new ExpandedReporter(flatten(suites),
254 concurrency: concurrency, color: color);
242 255
243 // Override the signal handler to close [reporter]. [loader] will still be 256 // Override the signal handler to close [reporter]. [loader] will still be
244 // closed in the [whenComplete] below. 257 // closed in the [whenComplete] below.
245 signalSubscription.onData((_) { 258 signalSubscription.onData((_) {
246 signalSubscription.cancel(); 259 signalSubscription.cancel();
247 closed = true; 260 closed = true;
248 261
249 // Wait a bit to print this message, since printing it eagerly looks weird 262 // Wait a bit to print this message, since printing it eagerly looks weird
250 // if the tests then finish immediately. 263 // if the tests then finish immediately.
251 var timer = new Timer(new Duration(seconds: 1), () { 264 var timer = new Timer(new Duration(seconds: 1), () {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 if (description is! Map) return false; 372 if (description is! Map) return false;
360 var path = description["path"]; 373 var path = description["path"];
361 if (path is! String) return false; 374 if (path is! String) return false;
362 375
363 print("$version (from $path)"); 376 print("$version (from $path)");
364 return true; 377 return true;
365 378
366 default: return false; 379 default: return false;
367 } 380 }
368 } 381 }
OLDNEW
« no previous file with comments | « CHANGELOG.md ('k') | lib/src/runner/engine.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698