;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; ;;;; ID: $Id: printer.lisp,v 1.5 2003/08/04 19:31:34 kevin Exp $ ;;;; Purpose: Printer functions for XLUnit ;;;; ;;;; ************************************************************************* (in-package #:xlunit) ;---------------------------------------------------------------------- ; method print-results ;---------------------------------------------------------------------- (defmethod print-results ((ob textui-test-runner) result seconds) (format (ostream ob) "~&Time: ~D~%~%" (coerce seconds 'float)) (print-header ob result) (print-errors ob result) (print-failures ob result) t) (defmethod print-header ((ob textui-test-runner) result) (let ((failures (failures result)) (errors (errors result)) (run-tests (run-tests result))) (cond ((and (null failures) (null errors)) (format (ostream ob) "~%OK (~a tests)~%" run-tests)) (t (format (ostream ob) "~%~%FAILURES!!!~%") (format (ostream ob) "Run: ~a Failures: ~a Errors: ~a~%" run-tests (length failures) (length errors)))))) (defmethod print-errors ((ob textui-test-runner) result) (let ((errors (errors result))) (when errors (if (eql (length errors) 1) (format (ostream ob) "~%There was 1 error:~%") (format (ostream ob) "~%There were ~a errors:~%" (length errors))) (let ((i 1)) (mapc #'(lambda (single-error) (format (ostream ob) "~a) ~a: ~a~%" i (name (failed-test single-error)) (thrown-condition single-error)) (incf i)) errors))))) (defmethod print-failures ((ob textui-test-runner) result) (let ((failures (failures result))) (when failures (if (eql (length failures) 1) (format (ostream ob) "~%There was 1 failure:~%") (format (ostream ob) "~%There were ~a failures:~%" (length failures))) (let ((i 1)) (mapc #'(lambda (single-failure) (format (ostream ob) "~a) ~a: ~a~%" i (name (failed-test single-failure)) (or (message (thrown-condition single-failure)) "")) (incf i)) failures))))) (defgeneric summary (result)) (defmethod summary ((result test-results)) (format nil "~D run, ~D erred, ~D failed" (run-tests result) (error-count result) (failure-count result)))