testing: provide deftest macro, show suite and test names

This commit is contained in:
Helmut Merz 2024-05-20 17:24:24 +02:00
parent 778409a842
commit 53a61b660b
2 changed files with 15 additions and 7 deletions

View file

@ -22,13 +22,13 @@
(defun run-sqlite () (defun run-sqlite ()
(load "test/config-sqlite") (load "test/config-sqlite")
(let ((storage:*db-config* *db-config-test*) (let ((storage:*db-config* *db-config-test*)
(t:*test-suite* (t:test-suite "test-sqlite"))) (t:*test-suite* (t:test-suite "sqlite")))
(run))) (run)))
(defun run-postgres () (defun run-postgres ()
(load "test/config-postgres") (load "test/config-postgres")
(let ((storage:*db-config* *db-config-test*) (let ((storage:*db-config* *db-config-test*)
(t:*test-suite* (t:test-suite))) (t:*test-suite* (t:test-suite "postgres")))
(run))) (run)))
(defun run () (defun run ()
@ -38,7 +38,7 @@
(test-track st) (test-track st)
(t:show-result))) (t:show-result)))
(defun test-track (st) (t:deftest test-track (st)
(let (cont tr tr2 (data (make-hash-table))) (let (cont tr tr2 (data (make-hash-table)))
(setf cont (make-instance 'tracking:container :storage st)) (setf cont (make-instance 'tracking:container :storage st))
(defparameter cl-user::*cont cont) (defparameter cl-user::*cont cont)

View file

@ -5,8 +5,8 @@
(defpackage :scopes/testing (defpackage :scopes/testing
(:use :common-lisp) (:use :common-lisp)
(:export #:*test-suite* (:export #:*test-suite*
#:test-suite #:show-result #:test-suite #:deftest #:show-result
#:==)) #:test #:==))
(in-package :scopes/testing) (in-package :scopes/testing)
@ -20,7 +20,15 @@
(make-instance 'test-suite :name name)) (make-instance 'test-suite :name name))
(defun show-result () (defun show-result ()
(format t "~a, result: ~a~%" (name *test-suite*) (result *test-suite*))) (format t "~a~%" (name *test-suite*) )
(dolist (res (result *test-suite*))
(let ((tst (reverse res)))
(format t "~a: ~a~%" (string-downcase (car tst)) (cdr tst)))))
(defun == (have wanted) (defun == (have wanted)
(push (equalp have wanted) (result *test-suite*))) (push (equalp have wanted) (car (result *test-suite*))))
(defmacro deftest (name args &body body)
`(defun ,name ,args
(push '(,name) (result *test-suite*))
,@body))