+(defmethod print-header ((obj textui-test-runner) result seconds)
+ (declare (ignore result))
+ (format (ostream obj) "~&Time: ~D~%~%" (coerce seconds 'float)))
+
+(defmethod print-defects ((obj textui-test-runner) defects title)
+ (when defects
+ (let ((count (length defects)))
+ (if (= 1 count)
+ (format (ostream obj) "~%There was 1 ~A:~%" title)
+ (format (ostream obj) "~%There were ~D ~A:~%"
+ count title))
+ (dotimes (i count)
+ (let* ((defect (nth i defects))
+ (condition (thrown-condition defect)))
+ (format (ostream obj) "~A) ~A: "
+ (1+ i) (name (failed-test defect)))
+ (typecase condition
+ (assertion-failed
+ (apply #'format (ostream obj)
+ (simple-condition-format-control condition)
+ (simple-condition-format-arguments condition))
+ (format (ostream obj) "~%")
+ (when (message condition)
+ (let ((spaces (+ 2 (length (format nil "~D" count)))))
+ (dotimes (i spaces)
+ (write-char #\space (ostream obj))))
+ (format (ostream obj) "~A~%" (message condition))))
+ (t
+ (format (ostream obj) "~A~%" condition))))))))
+
+
+(defmethod print-footer ((obj textui-test-runner) result)