diff --git a/lisp-unit.lisp b/lisp-unit.lisp index 317a69f..79c741b 100644 --- a/lisp-unit.lisp +++ b/lisp-unit.lisp @@ -75,6 +75,7 @@ :assert-error) ;; Functions for managing tests (:export :define-test + :defun-test :list-tests :test-code :test-documentation @@ -297,6 +298,15 @@ assertion.") ;; Return the name of the test ,qname)))) +;; function requested in issue #53 +(defmacro defun-test (name lambda-list &body body) + "Define a test and a function of the same name. +LAMBDA-LIST is a lambda list for the function, which may have &optional, &key, &aux arguments, but no manditory arguments." + `(progn (eval-when (:compile-toplevel :load-toplevel :execute) + (defun ,name ,lambda-list ,@body)) + (eval-when (:compile-toplevel :load-toplevel :execute) + (define-test ,name (,name))))) + ;;; Manage tests (defun list-tests (&optional (package *package*))