diff --git a/.travis.yml b/.travis.yml
index 2880345..eb82324 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,8 +13,8 @@
 jobs:
   include:
     - stage: analyze_and_format
-      name: "SDK: 2.4.0; PKGS: pkgs/test, pkgs/test_api, pkgs/test_core; TASKS: `dartanalyzer --fatal-warnings .`"
-      dart: "2.4.0"
+      name: "SDK: 2.7.0; PKGS: pkgs/test, pkgs/test_api, pkgs/test_core; TASKS: `dartanalyzer --fatal-warnings .`"
+      dart: "2.7.0"
       os: linux
       env: PKGS="pkgs/test pkgs/test_api pkgs/test_core"
       script: ./tool/travis.sh dartanalyzer_1
diff --git a/pkgs/test/CHANGELOG.md b/pkgs/test/CHANGELOG.md
index 8483e77..4bd7b5f 100644
--- a/pkgs/test/CHANGELOG.md
+++ b/pkgs/test/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 1.14.0
+
+* Drop the `package_resolver` dependency for the `package_config` dependency
+  which is lower level.
+
 ## 1.13.0
 
 * Enable asserts in code running through `spawnHybrid` APIs.
diff --git a/pkgs/test/lib/src/runner/browser/platform.dart b/pkgs/test/lib/src/runner/browser/platform.dart
index 0fff1ed..75c8eb0 100644
--- a/pkgs/test/lib/src/runner/browser/platform.dart
+++ b/pkgs/test/lib/src/runner/browser/platform.dart
@@ -9,7 +9,6 @@
 
 import 'package:async/async.dart';
 import 'package:http_multi_server/http_multi_server.dart';
-import 'package:package_resolver/package_resolver.dart';
 import 'package:path/path.dart' as p;
 import 'package:pool/pool.dart';
 import 'package:shelf/shelf.dart' as shelf;
@@ -37,6 +36,7 @@
 import 'package:test_core/src/runner/plugin/customizable_platform.dart'; // ignore: implementation_imports
 
 import '../executable_settings.dart';
+import '../../util/package_map.dart';
 import '../../util/path_handler.dart';
 import '../../util/one_off_handler.dart';
 import 'browser_manager.dart';
@@ -348,8 +348,9 @@
         if (getSourceMap && !suiteConfig.jsTrace) {
           _mappers[path] = JSStackTraceMapper(await utf8.decodeStream(response),
               mapUrl: url,
-              packageResolver: SyncPackageResolver.root('packages'),
-              sdkRoot: p.toUri('packages/\$sdk'));
+              sdkRoot: p.toUri('packages/\$sdk'),
+              packageMap:
+                  (await currentPackageConfig).toPackagesDirPackageMap());
           return;
         }
 
@@ -410,8 +411,8 @@
       var mapPath = jsPath + '.map';
       _mappers[dartPath] = JSStackTraceMapper(File(mapPath).readAsStringSync(),
           mapUrl: p.toUri(mapPath),
-          packageResolver: await PackageResolver.current.asSync,
-          sdkRoot: Uri.parse('org-dartlang-sdk:///sdk'));
+          sdkRoot: Uri.parse('org-dartlang-sdk:///sdk'),
+          packageMap: (await currentPackageConfig).toPackageMap());
     });
   }
 
diff --git a/pkgs/test/lib/src/runner/node/platform.dart b/pkgs/test/lib/src/runner/node/platform.dart
index e8ba74c..bea9aa9 100644
--- a/pkgs/test/lib/src/runner/node/platform.dart
+++ b/pkgs/test/lib/src/runner/node/platform.dart
@@ -7,9 +7,9 @@
 import 'dart:convert';
 
 import 'package:async/async.dart';
+import 'package:package_config/package_config.dart';
 import 'package:multi_server_socket/multi_server_socket.dart';
 import 'package:node_preamble/preamble.dart' as preamble;
-import 'package:package_resolver/package_resolver.dart';
 import 'package:path/path.dart' as p;
 import 'package:stream_channel/stream_channel.dart';
 import 'package:yaml/yaml.dart';
@@ -32,6 +32,7 @@
 import 'package:test_core/src/runner/plugin/platform_helpers.dart'; // ignore: implementation_imports
 
 import '../executable_settings.dart';
+import '../../util/package_map.dart';
 
 /// A platform that loads tests in Node.js processes.
 class NodePlatform extends PlatformPlugin
@@ -172,8 +173,8 @@
       var mapPath = jsPath + '.map';
       mapper = JSStackTraceMapper(await File(mapPath).readAsString(),
           mapUrl: p.toUri(mapPath),
-          packageResolver: await PackageResolver.current.asSync,
-          sdkRoot: Uri.parse('org-dartlang-sdk:///sdk'));
+          sdkRoot: Uri.parse('org-dartlang-sdk:///sdk'),
+          packageMap: (await currentPackageConfig).toPackageMap());
     }
 
     return Pair(await _startProcess(runtime, jsPath, socketPort), mapper);
@@ -191,12 +192,11 @@
     var jsPath = p.join(precompiledPath, '$testPath.node_test.dart.js');
     if (!suiteConfig.jsTrace) {
       var mapPath = jsPath + '.map';
-      var resolver = await SyncPackageResolver.loadConfig(
-          p.toUri(p.join(precompiledPath, '.packages')));
       mapper = JSStackTraceMapper(await File(mapPath).readAsString(),
           mapUrl: p.toUri(mapPath),
-          packageResolver: resolver,
-          sdkRoot: Uri.parse('org-dartlang-sdk:///sdk'));
+          sdkRoot: Uri.parse('org-dartlang-sdk:///sdk'),
+          packageMap: (await findPackageConfig(Directory(precompiledPath)))
+              .toPackageMap());
     }
 
     return Pair(await _startProcess(runtime, jsPath, socketPort), mapper);
@@ -220,8 +220,8 @@
       var mapUrl = url.replace(path: url.path + '.map');
       mapper = JSStackTraceMapper(await _get(mapUrl, testPath),
           mapUrl: mapUrl,
-          packageResolver: SyncPackageResolver.root('packages'),
-          sdkRoot: p.toUri('packages/\$sdk'));
+          sdkRoot: p.toUri('packages/\$sdk'),
+          packageMap: (await currentPackageConfig).toPackagesDirPackageMap());
     }
 
     return Pair(await _startProcess(runtime, jsPath, socketPort), mapper);
diff --git a/pkgs/test/lib/src/util/package_map.dart b/pkgs/test/lib/src/util/package_map.dart
new file mode 100644
index 0000000..948b6a6
--- /dev/null
+++ b/pkgs/test/lib/src/util/package_map.dart
@@ -0,0 +1,26 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:isolate';
+
+import 'package:package_config/package_config.dart';
+
+/// The [PackageConfig] parsed from the current isolates package config file.
+final Future<PackageConfig> currentPackageConfig = () async {
+  return loadPackageConfigUri(await Isolate.packageConfig);
+}();
+
+/// Adds methods to convert to a package map on [PackageConfig].
+extension PackageMap on PackageConfig {
+  /// A package map exactly matching the current package config
+  Map<String, Uri> toPackageMap() =>
+      {for (var package in packages) package.name: package.packageUriRoot};
+
+  /// A package map with all the current packages but where the uris are all
+  /// of the form 'packages/${package.name}'.
+  Map<String, Uri> toPackagesDirPackageMap() => {
+        for (var package in packages)
+          package.name: Uri.parse('packages/${package.name}')
+      };
+}
diff --git a/pkgs/test/mono_pkg.yaml b/pkgs/test/mono_pkg.yaml
index 1848903..ef401af 100644
--- a/pkgs/test/mono_pkg.yaml
+++ b/pkgs/test/mono_pkg.yaml
@@ -9,7 +9,7 @@
         dart: dev
       - group:
         - dartanalyzer: --fatal-warnings .
-        dart: 2.4.0
+        dart: 2.7.0
     - unit_test:
       - command: xvfb-run -s "-screen 0 1024x768x24" pub run test --preset travis -x phantomjs --total-shards 5 --shard-index 0
       - command: xvfb-run -s "-screen 0 1024x768x24" pub run test --preset travis -x phantomjs --total-shards 5 --shard-index 1
diff --git a/pkgs/test/pubspec.yaml b/pkgs/test/pubspec.yaml
index 9ae588e..548edca 100644
--- a/pkgs/test/pubspec.yaml
+++ b/pkgs/test/pubspec.yaml
@@ -1,15 +1,15 @@
 name: test
-version: 1.13.0
+version: 1.14.0
 description: A full featured library for writing and running Dart tests.
 homepage: https://github.com/dart-lang/test/blob/master/pkgs/test
 
 environment:
-  sdk: '>=2.4.0 <3.0.0'
+  sdk: '>=2.7.0 <3.0.0'
 
 dependencies:
-  analyzer: ">=0.36.0 <0.40.0"
+  analyzer: '>=0.36.0 <0.40.0'
   async: ^2.0.0
-  boolean_selector: ">=1.0.0 <3.0.0"
+  boolean_selector: '>=1.0.0 <3.0.0'
   coverage: ^0.13.4
   http: ^0.12.0
   http_multi_server: ^2.0.0
@@ -17,7 +17,7 @@
   js: ^0.6.0
   multi_server_socket: ^1.0.0
   node_preamble: ^1.3.0
-  package_resolver: ^1.0.0
+  package_config: ^1.9.0
   path: ^1.2.0
   pedantic: ^1.1.0
   pool: ^1.3.0
@@ -27,14 +27,14 @@
   shelf_web_socket: ^0.2.0
   source_span: ^1.4.0
   stack_trace: ^1.9.0
-  stream_channel: ">=1.7.0 <3.0.0"
+  stream_channel: '>=1.7.0 <3.0.0'
   typed_data: ^1.0.0
   web_socket_channel: ^1.0.0
   webkit_inspection_protocol: ^0.5.0
   yaml: ^2.0.0
   # Use an exact version until the test_api and test_core package are stable.
   test_api: 0.2.15
-  test_core: 0.3.1
+  test_core: 0.3.2
 
 dev_dependencies:
   fake_async: ^1.0.0
diff --git a/pkgs/test/test/io.dart b/pkgs/test/test/io.dart
index 0d92192..abbb690 100644
--- a/pkgs/test/test/io.dart
+++ b/pkgs/test/test/io.dart
@@ -4,8 +4,8 @@
 
 import 'dart:async';
 import 'dart:io';
+import 'dart:isolate';
 
-import 'package:package_resolver/package_resolver.dart';
 import 'package:path/path.dart' as p;
 import 'package:test_descriptor/test_descriptor.dart' as d;
 import 'package:test_process/test_process.dart';
@@ -13,7 +13,9 @@
 import 'package:test/test.dart';
 
 /// The path to the root directory of the `test` package.
-final Future<String> packageDir = PackageResolver.current.packagePath('test');
+final Future<String> packageDir =
+    Isolate.resolvePackageUri(Uri(scheme: 'package', path: 'test/'))
+        .then((uri) => p.dirname(uri.path));
 
 /// The path to the `pub` executable in the current Dart SDK.
 final _pubPath = p.absolute(p.join(p.dirname(Platform.resolvedExecutable),
@@ -95,7 +97,7 @@
   var allArgs = <String>[
     ...Platform.executableArguments.where((arg) =>
         !arg.startsWith('--package-root=') && !arg.startsWith('--packages=')),
-    await PackageResolver.current.processArgument,
+    '--packages=${await Isolate.packageConfig}',
     ...args
   ];
 
diff --git a/pkgs/test/test/runner/precompiled_test.dart b/pkgs/test/test/runner/precompiled_test.dart
index 6401195..b324e2d 100644
--- a/pkgs/test/test/runner/precompiled_test.dart
+++ b/pkgs/test/test/runner/precompiled_test.dart
@@ -5,15 +5,17 @@
 @TestOn('vm')
 import 'dart:async';
 import 'dart:io';
+import 'dart:isolate';
 
 import 'package:node_preamble/preamble.dart' as preamble;
-import 'package:package_resolver/package_resolver.dart';
+import 'package:package_config/package_config.dart';
 import 'package:path/path.dart' as p;
 import 'package:test_descriptor/test_descriptor.dart' as d;
 import 'package:test_process/test_process.dart';
 
 import 'package:test_core/src/util/io.dart';
 import 'package:test/test.dart';
+import 'package:test/src/util/package_map.dart';
 
 import '../io.dart';
 
@@ -50,7 +52,7 @@
       var dart2js = await TestProcess.start(
           p.join(sdkDir, 'bin', 'dart2js'),
           [
-            await PackageResolver.current.processArgument,
+            '--packages=${await Isolate.packageConfig}',
             'to_precompile.dart',
             '--out=precompiled/test.dart.browser_test.dart.js'
           ],
@@ -107,7 +109,7 @@
       var dart2js = await TestProcess.start(
           p.join(sdkDir, 'bin', 'dart2js'),
           [
-            await PackageResolver.current.processArgument,
+            '--packages=${await Isolate.packageConfig}',
             p.join('test', 'test.dart'),
             '--out=$jsPath',
           ],
@@ -232,10 +234,18 @@
 }
 
 Future<Null> _writePackagesFile() async {
-  var currentPackages = await PackageResolver.current.packageConfigMap;
-  var packagesFileContent = StringBuffer();
-  currentPackages.forEach((package, location) {
-    packagesFileContent.writeln('$package:$location');
-  });
-  await d.file('.packages', packagesFileContent.toString()).create();
+  var config = await findPackageConfig(Directory.current);
+  // TODO: remove try/catch when this issue is resolved:
+  // https://github.com/dart-lang/package_config/issues/66
+  try {
+    await savePackageConfig(config, Directory(d.sandbox));
+  } catch (_) {
+    // If it fails, just write a `.packages` file.
+    var packageMap = config.toPackageMap();
+    var packagesFileContent = StringBuffer();
+    packageMap.forEach((package, location) {
+      packagesFileContent.writeln('$package:$location');
+    });
+    await d.file('.packages', '$packagesFileContent').create();
+  }
 }
diff --git a/pkgs/test_api/mono_pkg.yaml b/pkgs/test_api/mono_pkg.yaml
index 5f08191..4a2bb76 100644
--- a/pkgs/test_api/mono_pkg.yaml
+++ b/pkgs/test_api/mono_pkg.yaml
@@ -1,13 +1,13 @@
 stages:
-    - analyze_and_format:
-      - group:
-        - dartfmt: sdk
-        - dartanalyzer: --fatal-infos --fatal-warnings .
-        dart: dev
-      - group:
-        - dartanalyzer: --fatal-warnings .
-        dart: 2.4.0
-    - unit_test:
-      - group:
-        - test: --preset travis
-        dart: dev
+  - analyze_and_format:
+    - group:
+      - dartfmt: sdk
+      - dartanalyzer: --fatal-infos --fatal-warnings .
+      dart: dev
+    - group:
+      - dartanalyzer: --fatal-warnings .
+      dart: 2.7.0
+  - unit_test:
+    - group:
+      - test: --preset travis
+      dart: dev
diff --git a/pkgs/test_api/pubspec.yaml b/pkgs/test_api/pubspec.yaml
index 8b34a9c..bd724e7 100644
--- a/pkgs/test_api/pubspec.yaml
+++ b/pkgs/test_api/pubspec.yaml
@@ -4,7 +4,7 @@
 homepage: https://github.com/dart-lang/test/blob/master/pkgs/test_api
 
 environment:
-  sdk: ">=2.4.0 <3.0.0"
+  sdk: ">=2.7.0 <3.0.0"
 
 dependencies:
   async: ^2.0.0
diff --git a/pkgs/test_core/CHANGELOG.md b/pkgs/test_core/CHANGELOG.md
index 8bff6c2..dcb572a 100644
--- a/pkgs/test_core/CHANGELOG.md
+++ b/pkgs/test_core/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3.2
+
+* Drop the `package_resolver` dependency.
+
 ## 0.3.1
 
 * Support latest `package:vm_service`.
diff --git a/pkgs/test_core/lib/src/runner/compiler_pool.dart b/pkgs/test_core/lib/src/runner/compiler_pool.dart
index 7da937a..7556ab5 100644
--- a/pkgs/test_core/lib/src/runner/compiler_pool.dart
+++ b/pkgs/test_core/lib/src/runner/compiler_pool.dart
@@ -5,9 +5,9 @@
 import 'dart:async';
 import 'dart:convert';
 import 'dart:io';
+import 'dart:isolate';
 
 import 'package:async/async.dart';
-import 'package:package_resolver/package_resolver.dart';
 import 'package:path/path.dart' as p;
 import 'package:pool/pool.dart';
 
@@ -67,7 +67,7 @@
           '--enable-asserts',
           wrapperPath,
           '--out=$jsPath',
-          await PackageResolver.current.processArgument,
+          '--packages=${await Isolate.packageConfig}',
           ..._extraArgs,
           ...suiteConfig.dart2jsArgs
         ];
diff --git a/pkgs/test_core/lib/src/util/stack_trace_mapper.dart b/pkgs/test_core/lib/src/util/stack_trace_mapper.dart
index 2d2b0bf..4f4a821 100644
--- a/pkgs/test_core/lib/src/util/stack_trace_mapper.dart
+++ b/pkgs/test_core/lib/src/util/stack_trace_mapper.dart
@@ -2,7 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'package:package_resolver/package_resolver.dart';
 import 'package:source_map_stack_trace/source_map_stack_trace.dart' as mapper;
 import 'package:source_maps/source_maps.dart';
 import 'package:test_api/src/util/stack_trace_mapper.dart'; // ignore: implementation_imports
@@ -14,8 +13,8 @@
   /// This is initialized lazily in `mapStackTrace()`.
   Mapping _mapping;
 
-  /// The package resolution information passed to dart2js.
-  final SyncPackageResolver _packageResolver;
+  /// The same package resolution information as was passed to dart2js.
+  final Map<String, Uri> _packageMap;
 
   /// The URL of the SDK root from which dart2js loaded its sources.
   final Uri _sdkRoot;
@@ -27,9 +26,9 @@
   final Uri _mapUrl;
 
   JSStackTraceMapper(this._mapContents,
-      {Uri mapUrl, SyncPackageResolver packageResolver, Uri sdkRoot})
+      {Uri mapUrl, Map<String, Uri> packageMap, Uri sdkRoot})
       : _mapUrl = mapUrl,
-        _packageResolver = packageResolver,
+        _packageMap = packageMap,
         _sdkRoot = sdkRoot;
 
   /// Converts [trace] into a Dart stack trace.
@@ -37,7 +36,7 @@
   StackTrace mapStackTrace(StackTrace trace) {
     _mapping ??= parseExtended(_mapContents, mapUrl: _mapUrl);
     return mapper.mapStackTrace(_mapping, trace,
-        packageResolver: _packageResolver, sdkRoot: _sdkRoot);
+        packageMap: _packageMap, sdkRoot: _sdkRoot);
   }
 
   /// Returns a Map representation which is suitable for JSON serialization.
@@ -46,9 +45,7 @@
     return {
       'mapContents': _mapContents,
       'sdkRoot': _sdkRoot?.toString(),
-      'packageConfigMap':
-          _serializePackageConfigMap(_packageResolver.packageConfigMap),
-      'packageRoot': _packageResolver.packageRoot?.toString(),
+      'packageConfigMap': _serializePackageConfigMap(_packageMap),
       'mapUrl': _mapUrl?.toString(),
     };
   }
@@ -57,15 +54,12 @@
   /// representation.
   static StackTraceMapper deserialize(Map serialized) {
     if (serialized == null) return null;
-    var packageRoot = serialized['packageRoot'] as String ?? '';
+    var deserialized = _deserializePackageConfigMap(
+        (serialized['packageConfigMap'] as Map).cast<String, String>());
+
     return JSStackTraceMapper(serialized['mapContents'] as String,
         sdkRoot: Uri.parse(serialized['sdkRoot'] as String),
-        packageResolver: packageRoot.isNotEmpty
-            ? SyncPackageResolver.root(
-                Uri.parse(serialized['packageRoot'] as String))
-            : SyncPackageResolver.config(_deserializePackageConfigMap(
-                (serialized['packageConfigMap'] as Map)
-                    .cast<String, String>())),
+        packageMap: deserialized,
         mapUrl: Uri.parse(serialized['mapUrl'] as String));
   }
 
diff --git a/pkgs/test_core/mono_pkg.yaml b/pkgs/test_core/mono_pkg.yaml
index 203675b..f6da98d 100644
--- a/pkgs/test_core/mono_pkg.yaml
+++ b/pkgs/test_core/mono_pkg.yaml
@@ -6,4 +6,4 @@
       dart: dev
     - group:
       - dartanalyzer: --fatal-warnings .
-      dart: 2.4.0
+      dart: 2.7.0
diff --git a/pkgs/test_core/pubspec.yaml b/pkgs/test_core/pubspec.yaml
index f98905f..6646ea8 100644
--- a/pkgs/test_core/pubspec.yaml
+++ b/pkgs/test_core/pubspec.yaml
@@ -1,10 +1,10 @@
 name: test_core
-version: 0.3.1
+version: 0.3.2
 description: A basic library for writing tests and running them on the VM.
 homepage: https://github.com/dart-lang/test/blob/master/pkgs/test_core
 
 environment:
-  sdk: ">=2.4.0 <3.0.0"
+  sdk: ">=2.7.0 <3.0.0"
 
 dependencies:
   analyzer: ">=0.36.0 <0.40.0"
@@ -16,11 +16,10 @@
   glob: ^1.0.0
   io: ^0.3.0
   meta: ^1.1.5
-  package_resolver: ^1.0.0
   path: ^1.2.0
   pedantic: ^1.0.0
   pool: ^1.3.0
-  source_map_stack_trace: ^1.1.4
+  source_map_stack_trace: ^2.0.0
   source_maps: ^0.10.2
   source_span: ^1.4.0
   stack_trace: ^1.9.0
