diff --git a/pkgs/test/CHANGELOG.md b/pkgs/test/CHANGELOG.md
index d19107b..d24269e 100644
--- a/pkgs/test/CHANGELOG.md
+++ b/pkgs/test/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.14.6
+
+* Update `test_core` to `0.3.6`.
+
 ## 1.14.5
 
 * Add additional information to an exception when we end up with a null
diff --git a/pkgs/test/pubspec.yaml b/pkgs/test/pubspec.yaml
index 8ffaa4d..28bba70 100644
--- a/pkgs/test/pubspec.yaml
+++ b/pkgs/test/pubspec.yaml
@@ -1,5 +1,5 @@
 name: test
-version: 1.14.5
+version: 1.14.6
 description: A full featured library for writing and running Dart tests.
 homepage: https://github.com/dart-lang/test/blob/master/pkgs/test
 
@@ -34,7 +34,7 @@
   yaml: ^2.0.0
   # Use an exact version until the test_api and test_core package are stable.
   test_api: 0.2.16
-  test_core: 0.3.5
+  test_core: 0.3.6
 
 dev_dependencies:
   fake_async: ^1.0.0
diff --git a/pkgs/test_core/CHANGELOG.md b/pkgs/test_core/CHANGELOG.md
index 77e7991..3292e3b 100644
--- a/pkgs/test_core/CHANGELOG.md
+++ b/pkgs/test_core/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3.6
+
+* Expose the `Configuration` class and related classes through `backend.dart`.
+
 ## 0.3.5
 
 * Add additional information to an exception when we end up with a null
diff --git a/pkgs/test_core/lib/backend.dart b/pkgs/test_core/lib/backend.dart
index afc15e9..3a1506b 100644
--- a/pkgs/test_core/lib/backend.dart
+++ b/pkgs/test_core/lib/backend.dart
@@ -10,4 +10,8 @@
 export 'package:test_api/backend.dart'
     show Metadata, PlatformSelector, Runtime, SuitePlatform;
 
+export 'src/runner/configuration.dart' show Configuration;
+export 'src/runner/configuration/custom_runtime.dart' show CustomRuntime;
+export 'src/runner/configuration/runtime_settings.dart' show RuntimeSettings;
 export 'src/runner/parse_metadata.dart' show parseMetadata;
+export 'src/runner/suite.dart' show SuiteConfiguration;
diff --git a/pkgs/test_core/lib/src/runner/configuration.dart b/pkgs/test_core/lib/src/runner/configuration.dart
index 5efad44..ce40ff0 100644
--- a/pkgs/test_core/lib/src/runner/configuration.dart
+++ b/pkgs/test_core/lib/src/runner/configuration.dart
@@ -221,6 +221,19 @@
   factory Configuration.load(String path, {bool global = false}) =>
       load(path, global: global);
 
+  /// Loads the configuration from YAML formatted [source].
+  ///
+  /// If [global] is `true`, this restricts the configuration file to only rules
+  /// that are supported globally.
+  ///
+  /// If [sourceUrl] is provided then that will be set as the source url for
+  /// the yaml document.
+  ///
+  /// Throws a [FormatException] if its contents are invalid.
+  factory Configuration.loadFromString(String source,
+          {bool global = false, Uri sourceUrl}) =>
+      loadFromString(source, global: global, sourceUrl: sourceUrl);
+
   factory Configuration(
       {bool help,
       String customHtmlTemplatePath,
diff --git a/pkgs/test_core/lib/src/runner/configuration/load.dart b/pkgs/test_core/lib/src/runner/configuration/load.dart
index d188b3e..208a3c5 100644
--- a/pkgs/test_core/lib/src/runner/configuration/load.dart
+++ b/pkgs/test_core/lib/src/runner/configuration/load.dart
@@ -39,14 +39,24 @@
 
 /// Loads configuration information from a YAML file at [path].
 ///
+/// See [loadFromString] for further documentation.
+Configuration load(String path, {bool global = false}) {
+  var source = File(path).readAsStringSync();
+  return loadFromString(source, global: global, sourceUrl: p.toUri(path));
+}
+
+/// Loads configuration information from YAML formatted [source].
+///
 /// If [global] is `true`, this restricts the configuration file to only rules
 /// that are supported globally.
 ///
-/// Throws a [FormatException] if the configuration is invalid, and a
-/// [FileSystemException] if it can't be read.
-Configuration load(String path, {bool global = false}) {
-  var source = File(path).readAsStringSync();
-  var document = loadYamlNode(source, sourceUrl: p.toUri(path));
+/// If [sourceUrl] is provided then that will be set as the source url for
+/// the yaml document.
+///
+/// Throws a [FormatException] if the configuration is invalid.
+Configuration loadFromString(String source,
+    {bool global = false, Uri sourceUrl}) {
+  var document = loadYamlNode(source, sourceUrl: sourceUrl);
 
   if (document.value == null) return Configuration.empty;
 
diff --git a/pkgs/test_core/pubspec.yaml b/pkgs/test_core/pubspec.yaml
index 8c1b699..a8f4093 100644
--- a/pkgs/test_core/pubspec.yaml
+++ b/pkgs/test_core/pubspec.yaml
@@ -1,5 +1,5 @@
 name: test_core
-version: 0.3.5
+version: 0.3.6
 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
 
