diff --git a/core/scripts/run-tests.sh b/core/scripts/run-tests.sh
index 47f7a86672f11c0a01f98542ad6d8d49d33bdd1a..c061be91c9bc6cb5d194c1f518318ee77671e890 100755
--- a/core/scripts/run-tests.sh
+++ b/core/scripts/run-tests.sh
@@ -5,6 +5,7 @@
  * This script runs Drupal tests from command line.
  */
 
+use Drupal\Component\Utility\Html;
 use Drupal\Component\Utility\Timer;
 use Drupal\Component\Uuid\Php;
 use Drupal\Core\Database\Database;
@@ -203,6 +204,9 @@ function simpletest_script_help() {
               if you want to also view any pages rendered in the simpletest
               browser you need to add --verbose to the command line.
 
+  --non-html  Removes escaping from output. Useful for reading results on the
+              CLI.
+
   <test1>[,<test2>[,<test3> ...]]
 
               One or more tests to be run. By default, these are interpreted
@@ -267,6 +271,7 @@ function simpletest_script_parse_args() {
     'test-id' => 0,
     'execute-test' => '',
     'xml' => '',
+    'non-html' => FALSE,
   );
 
   // Override with set values.
@@ -1101,14 +1106,18 @@ function simpletest_script_reporter_display_results() {
  * @param $result The result object to format.
  */
 function simpletest_script_format_result($result) {
-  global $results_map, $color;
+  global $args, $results_map, $color;
 
   $summary = sprintf("%-9.9s %-10.10s %-17.17s %4.4s %-35.35s\n",
     $results_map[$result->status], $result->message_group, basename($result->file), $result->line, $result->function);
 
   simpletest_script_print($summary, simpletest_script_color_code($result->status));
 
-  $lines = explode("\n", wordwrap(trim(strip_tags($result->message)), 76));
+  $message = trim(strip_tags($result->message));
+  if ($args['non-html']) {
+    $message = Html::decodeEntities($message, ENT_QUOTES, 'UTF-8');
+  }
+  $lines = explode("\n", wordwrap($message), 76);
   foreach ($lines as $line) {
     echo "    $line\n";
   }