diff --git a/testing.lisp b/testing.lisp index f265ae9..96116f7 100644 --- a/testing.lisp +++ b/testing.lisp @@ -14,28 +14,28 @@ (defclass test-suite () ((name :reader name :initform "test" :initarg :name) - (result :accessor result :initform nil) - (ok :accessor ok :initform t))) + (errors :accessor errors :initform nil) + (result :accessor result :initform nil))) (defun test-suite (&optional (name "test")) (make-instance 'test-suite :name name)) (defun show-result () - (format t "=== ~a Tests ===~%" (name *test-suite*) ) - (dolist (res (reverse (result *test-suite*))) - (let ((tst (reverse res))) - (format t "~a: ~a~%" (string-downcase (car tst)) (cdr tst)))) - (if (not (ok *test-suite*)) - (format t "*****~%")) + (let ((suite *test-suite*)) + (format t "=== ~a Tests ===~%" (name suite) ) + (dolist (res (reverse (result suite))) + (let ((tst (reverse res))) + (format t "~a: ~a~%" (car tst) (cdr tst)))) + (if (errors suite) + (format t "*** errors: ~a~%" (reverse (errors suite))))) (values)) (defun == (have wanted) - (let ((is-ok (equalp have wanted))) - (if (not is-ok) - (progn - (push (format nil "~a!=~a" have wanted) (car (result *test-suite*))) - (setf (ok *test-suite*) nil)) - (push is-ok (car (result *test-suite*)))))) + (let ((suite *test-suite*) + (is-ok (equalp have wanted))) + (push is-ok (car (result suite))) + (unless is-ok + (push (format nil "~a!=~a" have wanted) (errors suite))))) (defmacro deftest (name args &body body) `(defun ,name ,args