Index: lib/src/runner.dart |
diff --git a/lib/src/runner.dart b/lib/src/runner.dart |
index d0fa34450ef4e70b1446ed1178236487a1baa0f6..0441e9ef5b8b8df619dc0a3a6b414d963c07a02e 100644 |
--- a/lib/src/runner.dart |
+++ b/lib/src/runner.dart |
@@ -9,9 +9,7 @@ import 'dart:io'; |
import 'package:async/async.dart'; |
-import 'backend/metadata.dart'; |
import 'backend/test_platform.dart'; |
-import 'frontend/timeout.dart'; |
import 'runner/application_exception.dart'; |
import 'runner/configuration.dart'; |
import 'runner/engine.dart'; |
@@ -36,7 +34,7 @@ final _debugUnsupportedPlatforms = new Set.from( |
/// [ExpandedReporter]. |
class Runner { |
/// The configuration for the runner. |
- final Configuration _configuration; |
+ final Configuration _config; |
/// The loader that loads the test suites from the filesystem. |
final Loader _loader; |
@@ -55,35 +53,26 @@ class Runner { |
bool get _closed => _closeMemo.hasRun; |
/// Creates a new runner based on [configuration]. |
- factory Runner(Configuration configuration) { |
- var metadata = new Metadata( |
- timeout: configuration.pauseAfterLoad ? Timeout.none : null, |
- verboseTrace: configuration.verboseTrace); |
- var loader = new Loader(configuration.platforms, |
- pubServeUrl: configuration.pubServeUrl, |
- packageRoot: configuration.packageRoot, |
- color: configuration.color, |
- metadata: metadata, |
- jsTrace: configuration.jsTrace); |
- |
- var engine = new Engine(concurrency: configuration.concurrency); |
- |
- var watch = configuration.reporter == "compact" |
+ factory Runner(Configuration config) { |
+ var loader = new Loader(config); |
+ var engine = new Engine(concurrency: config.concurrency); |
+ |
+ var watch = config.reporter == "compact" |
? CompactReporter.watch |
: ExpandedReporter.watch; |
var reporter = watch( |
engine, |
- color: configuration.color, |
- verboseTrace: configuration.verboseTrace, |
- printPath: configuration.paths.length > 1 || |
- new Directory(configuration.paths.single).existsSync(), |
- printPlatform: configuration.platforms.length > 1); |
+ color: config.color, |
+ verboseTrace: config.verboseTrace, |
+ printPath: config.paths.length > 1 || |
+ new Directory(config.paths.single).existsSync(), |
+ printPlatform: config.platforms.length > 1); |
- return new Runner._(configuration, loader, engine, reporter); |
+ return new Runner._(config, loader, engine, reporter); |
} |
- Runner._(this._configuration, this._loader, this._engine, this._reporter); |
+ Runner._(this._config, this._loader, this._engine, this._reporter); |
/// Starts the runner. |
/// |
@@ -97,7 +86,7 @@ class Runner { |
var suites = _loadSuites(); |
var success; |
- if (_configuration.pauseAfterLoad) { |
+ if (_config.pauseAfterLoad) { |
success = await _loadThenPause(suites); |
} else { |
_suiteSubscription = suites.listen(_engine.suiteSink.add); |
@@ -111,14 +100,14 @@ class Runner { |
if (_closed) return false; |
if (_engine.passed.length == 0 && _engine.failed.length == 0 && |
- _engine.skipped.length == 0 && _configuration.pattern != null) { |
+ _engine.skipped.length == 0 && _config.pattern != null) { |
var message = 'No tests match '; |
- if (_configuration.pattern is RegExp) { |
- var pattern = (_configuration.pattern as RegExp).pattern; |
+ if (_config.pattern is RegExp) { |
+ var pattern = (_config.pattern as RegExp).pattern; |
message += 'regular expression "$pattern".'; |
} else { |
- message += '"${_configuration.pattern}".'; |
+ message += '"${_config.pattern}".'; |
} |
throw new ApplicationException(message); |
} |
@@ -158,12 +147,12 @@ class Runner { |
await _loader.close(); |
}); |
- /// Return a stream of [LoadSuite]s in [_configuration.paths]. |
+ /// Return a stream of [LoadSuite]s in [_config.paths]. |
/// |
- /// Only tests that match [_configuration.pattern] will be included in the |
+ /// Only tests that match [_config.pattern] will be included in the |
/// suites once they're loaded. |
Stream<LoadSuite> _loadSuites() { |
- return mergeStreams(_configuration.paths.map((path) { |
+ return mergeStreams(_config.paths.map((path) { |
if (new Directory(path).existsSync()) return _loader.loadDir(path); |
if (new File(path).existsSync()) return _loader.loadFile(path); |
@@ -173,9 +162,9 @@ class Runner { |
]); |
})).map((loadSuite) { |
return loadSuite.changeSuite((suite) { |
- if (_configuration.pattern == null) return suite; |
+ if (_config.pattern == null) return suite; |
return suite.change(tests: suite.tests.where((test) => |
- test.name.contains(_configuration.pattern))); |
+ test.name.contains(_config.pattern))); |
}); |
}); |
} |
@@ -183,7 +172,7 @@ class Runner { |
/// Loads each suite in [suites] in order, pausing after load for platforms |
/// that support debugging. |
Future<bool> _loadThenPause(Stream<LoadSuite> suites) async { |
- var unsupportedPlatforms = _configuration.platforms |
+ var unsupportedPlatforms = _config.platforms |
.where(_debugUnsupportedPlatforms.contains) |
.map((platform) => |
platform == TestPlatform.vm ? "the Dart VM" : platform.name) |
@@ -193,7 +182,7 @@ class Runner { |
warn( |
wordWrap("Debugging is currently unsupported on " |
"${toSentence(unsupportedPlatforms)}."), |
- color: _configuration.color); |
+ color: _config.color); |
} |
_suiteSubscription = suites.asyncMap((loadSuite) async { |
@@ -230,9 +219,9 @@ class Runner { |
try { |
_reporter.pause(); |
- var bold = _configuration.color ? '\u001b[1m' : ''; |
- var yellow = _configuration.color ? '\u001b[33m' : ''; |
- var noColor = _configuration.color ? '\u001b[0m' : ''; |
+ var bold = _config.color ? '\u001b[1m' : ''; |
+ var yellow = _config.color ? '\u001b[33m' : ''; |
+ var noColor = _config.color ? '\u001b[0m' : ''; |
print(''); |
if (suite.platform.isDartVM) { |