Nouvelle version de test-unitaire (en cours, ne fonctionne pas à 100%).
This commit is contained in:
parent
4a63f15821
commit
0158ba3734
0
meval.lisp
Executable file → Normal file
0
meval.lisp
Executable file → Normal file
37
test-unitaire.lisp
Executable file → Normal file
37
test-unitaire.lisp
Executable file → Normal file
|
@ -1,5 +1,42 @@
|
||||||
;; TODO : exploser tout ça en plein de petites fonctions, c'est trop gros...
|
;; TODO : exploser tout ça en plein de petites fonctions, c'est trop gros...
|
||||||
;; Mutation cons.
|
;; Mutation cons.
|
||||||
|
(defvar all-tests nil "Liste de tous les tests")
|
||||||
|
|
||||||
|
(defmacro deftest (module test expected)
|
||||||
|
`(progn
|
||||||
|
(if (not (assoc ',module all-tests))
|
||||||
|
(setf all-tests (cons '(,module . nil) all-tests)))
|
||||||
|
(setf (cdr (assoc ',module all-tests))
|
||||||
|
(cons
|
||||||
|
(lambda ()
|
||||||
|
(let ((res ,expected))
|
||||||
|
(if (equal ,test res)
|
||||||
|
(progn
|
||||||
|
(format t "~& [SUCCESS] ~w~&" ',test)
|
||||||
|
t)
|
||||||
|
(progn
|
||||||
|
(format t "~& [FAILURE] Test : ~w~&"
|
||||||
|
',test)
|
||||||
|
(format t "~& got : ~w~&"
|
||||||
|
res)
|
||||||
|
(format t "~& expected : ~w~&"
|
||||||
|
',expected)
|
||||||
|
nil))))
|
||||||
|
(cdr (assoc ',module all-tests))))))
|
||||||
|
|
||||||
|
(defmacro run-tests (&rest modules)
|
||||||
|
(if (or (not modules)
|
||||||
|
(eq (car modules) t))
|
||||||
|
`(real-run-tests ',(mapcar #'car all-tests))
|
||||||
|
`(real-run-tests ',modules)))
|
||||||
|
|
||||||
|
(defun real-run-tests (modules)
|
||||||
|
(mapcar (lambda (module)
|
||||||
|
(if (member (car module) modules)
|
||||||
|
(mapcar (cdr module) #'funcall)))
|
||||||
|
all-tests
|
||||||
|
)
|
||||||
|
|
||||||
(let ((tests nil))
|
(let ((tests nil))
|
||||||
(defmacro deftest (module test expected)
|
(defmacro deftest (module test expected)
|
||||||
(if (not (assoc module tests))
|
(if (not (assoc module tests))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user