Index: lib/src/executable.dart |
diff --git a/lib/src/executable.dart b/lib/src/executable.dart |
index 29c4dd33c4599a0fffdf5435d2ac32cef22e15a4..1156acf99cdce57253d5ae30df5ffaa84b1c6a4f 100644 |
--- a/lib/src/executable.dart |
+++ b/lib/src/executable.dart |
@@ -15,6 +15,7 @@ import 'package:yaml/yaml.dart'; |
import 'runner.dart'; |
import 'runner/application_exception.dart'; |
import 'runner/configuration.dart'; |
+import 'runner/version.dart'; |
import 'util/exit_codes.dart' as exit_codes; |
import 'util/io.dart'; |
import 'utils.dart'; |
@@ -75,9 +76,12 @@ main(List<String> args) async { |
} |
if (configuration.version) { |
- if (!_printVersion()) { |
+ var version = testVersion; |
+ if (version == null) { |
stderr.writeln("Couldn't find version number."); |
exitCode = exit_codes.data; |
+ } else { |
+ print(version); |
} |
return; |
} |
@@ -154,61 +158,3 @@ Usage: pub run test:test [files or directories...] |
${Configuration.usage} |
"""); |
} |
- |
-/// Prints the version number of the test package. |
-/// |
-/// This loads the version number from the current package's lockfile. It |
-/// returns true if it successfully printed the version number and false if it |
-/// couldn't be loaded. |
-bool _printVersion() { |
- var lockfile; |
- try { |
- lockfile = loadYaml(new File("pubspec.lock").readAsStringSync()); |
- } on FormatException catch (_) { |
- return false; |
- } on IOException catch (_) { |
- return false; |
- } |
- |
- if (lockfile is! Map) return false; |
- var packages = lockfile["packages"]; |
- if (packages is! Map) return false; |
- var package = packages["test"]; |
- if (package is! Map) return false; |
- |
- var source = package["source"]; |
- if (source is! String) return false; |
- |
- switch (source) { |
- case "hosted": |
- var version = package["version"]; |
- if (version is! String) return false; |
- |
- print(version); |
- return true; |
- |
- case "git": |
- var version = package["version"]; |
- if (version is! String) return false; |
- var description = package["description"]; |
- if (description is! Map) return false; |
- var ref = description["resolved-ref"]; |
- if (ref is! String) return false; |
- |
- print("$version (${ref.substring(0, 7)})"); |
- return true; |
- |
- case "path": |
- var version = package["version"]; |
- if (version is! String) return false; |
- var description = package["description"]; |
- if (description is! Map) return false; |
- var path = description["path"]; |
- if (path is! String) return false; |
- |
- print("$version (from $path)"); |
- return true; |
- |
- default: return false; |
- } |
-} |