X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Frun.lisp;h=dbdd4ed17317337c4218251e1138b8bdd30b6feb;hb=3074223314aa4655a09fb0654c83563782e6e7d2;hp=3f03cfa3bed7ebe6beef46eccce63fa96aa46696;hpb=b946ea038243212fde4fa87103604a00666ddbf3;p=fiveam.git diff --git a/src/run.lisp b/src/run.lisp index 3f03cfa..dbdd4ed 100644 --- a/src/run.lisp +++ b/src/run.lisp @@ -131,7 +131,7 @@ run.")) (add-result 'unexpected-test-failure :test-expr nil :test-case test - :reason (format nil "Unexpected Error: ~S." e) + :reason (format nil "Unexpected Error: ~S~%~A." e e) :condition e)) (run-it () (let ((result-list '())) @@ -147,7 +147,9 @@ run.")) (abort-test e) (return-from run-it result-list))))) (restart-case - (funcall (test-lambda test)) + (let ((*readtable* (copy-readtable)) + (*package* (runtime-package test))) + (funcall (test-lambda test))) (retest () :report (lambda (stream) (format stream "~@" test)) @@ -170,6 +172,9 @@ run.")) (defmethod %run ((test test-case)) (run-resolving-dependencies test)) +(defmethod %run ((tests list)) + (mapc #'%run tests)) + (defmethod %run ((suite test-suite)) (let ((suite-results '())) (bind-run-state ((result-list '())) @@ -194,7 +199,7 @@ run.")) ;;;; ** Public entry points -(defun run! (test-spec) +(defun run! (&optional (test-spec *suite*)) "Equivalent to (explain (run TEST-SPEC))." (explain! (run test-spec)))