X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=printer.lisp;fp=printer.lisp;h=16f1bdb85cac9514678037fc5d771e2cc8edef34;hb=318cda1a328e9d99af2270c73cb13262e485a1ff;hp=0000000000000000000000000000000000000000;hpb=bee53ea40ad9caeeed1e7392d1f59127df7512ac;p=xlunit.git diff --git a/printer.lisp b/printer.lisp new file mode 100644 index 0000000..16f1bdb --- /dev/null +++ b/printer.lisp @@ -0,0 +1,46 @@ +;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- +;;;; ************************************************************************* +;;;; FILE IDENTIFICATION +;;;; +;;;; Name: printer.lisp +;;;; Purpose: Printer functions for XLUnit +;;;; Authors: Kevin Rosenberg +;;;; +;;;; $Id: printer.lisp,v 1.1 2003/08/04 12:01:54 kevin Exp $ +;;;; ************************************************************************* + +(in-package #:xlunit) + + +(defun result-printer (result seconds stream) + (format stream "~&Time: ~D~%~%" (coerce seconds 'float)) + (print-defects (test-errors result) "error" stream) + (print-defects (test-failures result) "failure" stream) + (if (was-successful result) + (format stream "OK (~D tests)~%" (test-count result)) + (progn + (format stream "~%FAILURES!!!~%") + (format stream "Tests run: ~D, Failures: ~D, Errors: ~D~%" + (test-count result) (length (test-failures result)) + (length (test-errors result)))))) + +(defun print-defects (defects type stream) + (when defects + (let ((count (length defects))) + (if (= count 1) + (format stream "~&There was ~D ~A:~%" count type) + (format stream "~&There were ~D ~As:~%" count type)) + (dotimes (i count) + (let ((defect (nth i defects))) + (format stream "~&~D) ~A " i (class-name + (class-of (failed-test defect)))) + (apply #'format stream (simple-condition-format-control + (thrown-condition defect)) + (simple-condition-format-arguments + (thrown-condition defect))) + (fresh-line stream)))))) + +(defmethod summary ((result test-result)) + (format nil "~D run, ~D erred, ~D failed" + (test-count result) (length (test-errors result)) + (length (test-failures result))))