diff --git a/core/lib/Drupal/Core/Test/TestRunnerKernel.php b/core/lib/Drupal/Core/Test/TestRunnerKernel.php
index d56841d..60e55bd 100644
--- a/core/lib/Drupal/Core/Test/TestRunnerKernel.php
+++ b/core/lib/Drupal/Core/Test/TestRunnerKernel.php
@@ -55,6 +55,9 @@ public function boot() {
     if (!Settings::getAll()) {
       new Settings(array(
         'hash_salt' => 'run-tests',
+        // If there is no settings.php, then there is no parent site. In turn,
+        // there is no public files directory; use a custom public files path.
+        'file_public_path' => 'sites/default/files',
       ));
     }
 
@@ -71,6 +74,13 @@ public function boot() {
     $this->getContainer()->get('module_handler')->loadAll();
 
     simpletest_classloader_register();
+
+    // Register System module stream wrappers and create the build/artifacts
+    // directory if necessary.
+    file_get_stream_wrappers();
+    if (!is_dir('public://simpletest')) {
+      mkdir('public://simpletest', 0777, TRUE);
+    }
   }
 
   /**
diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index 1144e9d..fb6ae42 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -205,7 +205,9 @@ function simpletest_process_phpunit_results($phpunit_results) {
   // Insert the results of the PHPUnit test run into the database so the results
   // are displayed along with Simpletest's results.
   if (!empty($phpunit_results)) {
-    $query = db_insert('simpletest')->fields(array_keys($phpunit_results[0]));
+    $query = TestBase::getDatabaseConnection()
+      ->insert('simpletest')
+      ->fields(array_keys($phpunit_results[0]));
     foreach ($phpunit_results as $result) {
       $query->values($result);
     }
