             ;; ‘load-suffixes’ temporarily to its original value.
             (let ((load-suffixes original-load-suffixes))
               (elisp/ert/log--error name
-                                    (format-message "Test %s %s" name status))))
+                                    (format-message "Test %s %s" name status)))
+            (and fail-fast (setq tests nil)))
           (and failed (cl-incf failures))
           (and (not expected) (not failed) (cl-incf errors))
           (when (ert-test-skipped-p result)

               (report nil))
          (message "Test %s %s and took %d ms" name status
                   (* (float-time duration) 1000))
          (unless expected
            (cl-incf unexpected)
            ;; Print a nice error message that should point back to the source

                           ,@report)
                test-reports)))
      (message "Running %d tests finished, %d results unexpected"
               total unexpected)
      (unless (member report-file '(nil ""))
        (with-temp-buffer
          ;; The expected format of the XML output file isn’t well-documented.
