From 111392d7c9b9fa6ba079d76a4ab00ad912679b73 Mon Sep 17 00:00:00 2001 From: Devon Carew Date: Fri, 27 May 2016 21:42:46 -0700 Subject: [PATCH] run pub get (w/ symlinks) for flutter drive (#4259) * run pub get (w/ symlinks) for flutter drive * review comments --- packages/flutter_tools/lib/src/commands/drive.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/flutter_tools/lib/src/commands/drive.dart b/packages/flutter_tools/lib/src/commands/drive.dart index e5c754e868..c3a151935a 100644 --- a/packages/flutter_tools/lib/src/commands/drive.dart +++ b/packages/flutter_tools/lib/src/commands/drive.dart @@ -12,8 +12,11 @@ import '../android/android_device.dart' show AndroidDevice; import '../application_package.dart'; import '../base/file_system.dart'; import '../base/common.dart'; +import '../base/logger.dart'; import '../base/os.dart'; +import '../base/process.dart'; import '../build_info.dart'; +import '../dart/sdk.dart'; import '../device.dart'; import '../globals.dart'; import '../ios/simulators.dart' show SimControl, IOSSimulatorUtils; @@ -121,6 +124,16 @@ class DriveCommand extends RunCommandBase { printStatus('Will connect to already running application instance.'); } + // Check for the existance of a `packages/` directory; pub test does not yet + // support running without symlinks. + if (!new io.Directory('packages').existsSync()) { + Status status = logger.startProgress( + 'Missing packages directory; running `pub get` (to work around https://github.com/dart-lang/test/issues/327):' + ); + await runAsync([sdkBinaryName('pub'), 'get', '--no-precompile']); + status.stop(showElapsedTime: true); + } + try { return await testRunner([testFile]) .catchError((dynamic error, dynamic stackTrace) {