Use .packages for flutter driver tests (#5795)

Fixes flutter drive breakage introduced in d2fda677e1b2919538d6df10eba859803b131462.
diff --git a/packages/flutter_tools/lib/src/commands/drive.dart b/packages/flutter_tools/lib/src/commands/drive.dart
index 514c3db..2cbe8e9 100644
--- a/packages/flutter_tools/lib/src/commands/drive.dart
+++ b/packages/flutter_tools/lib/src/commands/drive.dart
@@ -6,7 +6,6 @@
 import 'dart:io' as io;
 
 import 'package:path/path.dart' as path;
-import 'package:test/src/executable.dart' as executable; // ignore: implementation_imports
 
 import '../android/android_device.dart' show AndroidDevice;
 import '../application_package.dart';
@@ -17,6 +16,7 @@
 import '../base/process.dart';
 import '../build_info.dart';
 import '../cache.dart';
+import '../dart/package_map.dart';
 import '../dart/sdk.dart';
 import '../device.dart';
 import '../globals.dart';
@@ -126,13 +126,11 @@
       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(<String>[sdkBinaryName('pub'), 'get', '--no-precompile']);
+    // Check for the existence of a `.packages` file.
+    PackageMap.globalPackagesPath = path.normalize(path.absolute(PackageMap.globalPackagesPath));
+    if (!new io.File(PackageMap.globalPackagesPath).existsSync()) {
+      Status status = logger.startProgress('Missing .packages file; running `pub get`:');
+      await runAsync(<String>[sdkBinaryName('pub'), 'get', '--no-precompile', '--no-packages-dir']);
       status.stop(showElapsedTime: true);
     }
 
@@ -335,9 +333,15 @@
 
 Future<int> runTests(List<String> testArgs) async {
   printTrace('Running driver tests.');
-  List<String> args = testArgs.toList()..add('-rexpanded');
-  await executable.main(args);
-  return io.exitCode;
+
+  List<String> args = testArgs.toList()
+    ..add('--packages=${PackageMap.globalPackagesPath}')
+    ..add('-rexpanded');
+  String dartVmPath = path.join(dartSdkPath, 'bin', 'dart');
+  io.Process driver = await io.Process.start(dartVmPath, args);
+  driver.stdout.listen(io.stdout.add);
+  driver.stderr.listen(io.stderr.add);
+  return await driver.exitCode;
 }