diff --git a/core/modules/simpletest/config/schema/simpletest.schema.yml b/core/modules/simpletest/config/schema/simpletest.schema.yml
index 5423adc..615d747 100644
--- a/core/modules/simpletest/config/schema/simpletest.schema.yml
+++ b/core/modules/simpletest/config/schema/simpletest.schema.yml
@@ -4,6 +4,13 @@ simpletest.settings:
   type: mapping
   label: 'Testing'
   mapping:
+    clear:
+      type: mapping
+      label: 'Clean-up options'
+      mapping:
+        results:
+          type: boolean
+          label: 'Clear test assertion results'
     clear_results:
       type: boolean
       label: 'Clear results after each complete test suite run'
diff --git a/core/modules/simpletest/config/simpletest.settings.yml b/core/modules/simpletest/config/simpletest.settings.yml
index 52b2d3d..ac4872d 100644
--- a/core/modules/simpletest/config/simpletest.settings.yml
+++ b/core/modules/simpletest/config/simpletest.settings.yml
@@ -1,4 +1,5 @@
-clear_results: '1'
+clear:
+  results: true
 httpauth:
   method: '1'
   password: ''
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/Form/SimpletestResultsForm.php b/core/modules/simpletest/lib/Drupal/simpletest/Form/SimpletestResultsForm.php
index a166422..94f63e7 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/Form/SimpletestResultsForm.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/Form/SimpletestResultsForm.php
@@ -228,6 +228,7 @@ public function buildForm(array $form, array &$form_state, $test_id = NULL) {
       '#href' => 'admin/config/development/testing',
     );
 
+    // @todo Move test-specific clean-up into TestBase::run().
     if (is_numeric($test_id)) {
       simpletest_clean_results_table($test_id);
     }
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/Form/SimpletestSettingsForm.php b/core/modules/simpletest/lib/Drupal/simpletest/Form/SimpletestSettingsForm.php
index 24bdb85..ac54f51 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/Form/SimpletestSettingsForm.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/Form/SimpletestSettingsForm.php
@@ -30,12 +30,6 @@ public function buildForm(array $form, array &$form_state) {
       '#type' => 'details',
       '#title' => $this->t('General'),
     );
-    $form['general']['simpletest_clear_results'] = array(
-      '#type' => 'checkbox',
-      '#title' => $this->t('Clear results after each complete test suite run'),
-      '#description' => $this->t('By default SimpleTest will clear the results after they have been viewed on the results page, but in some cases it may be useful to leave the results in the database. The results can then be viewed at <em>admin/config/development/testing/results/[test_id]</em>. The test ID can be found in the database, simpletest table, or kept track of when viewing the results the first time. Additionally, some modules may provide more analysis or features that require this setting to be disabled.'),
-      '#default_value' => $config->get('clear_results'),
-    );
     $form['general']['simpletest_verbose'] = array(
       '#type' => 'checkbox',
       '#title' => $this->t('Provide verbose information when running tests'),
@@ -108,7 +102,6 @@ public function validateForm(array &$form, array &$form_state) {
    */
   public function submitForm(array &$form, array &$form_state) {
     $this->configFactory->get('simpletest.settings')
-      ->set('clear_results', $form_state['values']['simpletest_clear_results'])
       ->set('verbose', $form_state['values']['simpletest_verbose'])
       ->set('httpauth.method', $form_state['values']['simpletest_httpauth_method'])
       ->set('httpauth.username', $form_state['values']['simpletest_httpauth_username'])
diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index bd50676..e2709ba 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -590,7 +590,7 @@ function simpletest_generate_file($filename, $width, $lines, $type = 'binary-tex
 function simpletest_clean_environment() {
   simpletest_clean_database();
   simpletest_clean_temporary_directories();
-  if (\Drupal::config('simpletest.settings')->get('clear_results')) {
+  if (\Drupal::config('simpletest.settings')->get('clear.results')) {
     $count = simpletest_clean_results_table();
     drupal_set_message(format_plural($count, 'Removed 1 test result.', 'Removed @count test results.'));
   }
@@ -660,7 +660,8 @@ function simpletest_clean_temporary_directories() {
  *   The number of results removed.
  */
 function simpletest_clean_results_table($test_id = NULL) {
-  if (\Drupal::config('simpletest.settings')->get('clear_results')) {
+  if (\Drupal::config('simpletest.settings')->get('clear.results')) {
+    // @todo Move test-specific clean-up into TestBase::run().
     if ($test_id) {
       $count = db_query('SELECT COUNT(test_id) FROM {simpletest_test_id} WHERE test_id = :test_id', array(':test_id' => $test_id))->fetchField();
 
@@ -671,6 +672,8 @@ function simpletest_clean_results_table($test_id = NULL) {
         ->condition('test_id', $test_id)
         ->execute();
     }
+    // @todo Move global clean-up into simpletest_clean_environment(), ignoring
+    //   configuration value.
     else {
       $count = db_query('SELECT COUNT(test_id) FROM {simpletest_test_id}')->fetchField();
 
diff --git a/core/scripts/run-tests.sh b/core/scripts/run-tests.sh
index e9f0ffe..c116868 100755
--- a/core/scripts/run-tests.sh
+++ b/core/scripts/run-tests.sh
@@ -497,7 +497,7 @@ function simpletest_script_run_one_test($test_id, $test_class) {
 
     // Override configuration according to command line parameters.
     $conf['simpletest.settings']['verbose'] = $args['verbose'];
-    $conf['simpletest.settings']['clear_results'] = !$args['keep-results'];
+    $conf['simpletest.settings']['clear']['results'] = !$args['keep-results'];
 
     $test = new $test_class($test_id);
     $test->dieOnFail = (bool) $args['die-on-fail'];
