Homepage: https://github.com/rocky/emacs-test-simple
Author: Rocky Bernstein
Updated:
Simple Unit Test Framework for Emacs Lisp
test-simple.el is:
* Simple. No need for
- context macros,
- enclosing specifications,
- required test tags.
But if you want, you still can enclose tests in a local scope,
add customized assert failure messages, or add summary messages
before a group of tests.
* Accommodates both interactive and non-interactive use.
- For interactive use, one can use `eval-last-sexp', `eval-region',
and `eval-buffer'. One can `edebug' the code.
- For non-interactive use, run:
emacs --batch --no-site-file --no-splash --load
Here is an example using gcd.el found in the examples directory.
(require 'test-simple)
(test-simple-start) ;; Zero counters and start the stop watch.
;; Use (load-file) below because we want to always to read the source.
;; Also, we don't want no stinking compiled source.
(assert-t (load-file "./gcd.el")
"Can't load gcd.el - are you in the right directory?" )
(note "degenerate cases")
(assert-nil (gcd 5 -1) "using positive numbers")
(assert-nil (gcd -4 1) "using positive numbers, switched order")
(assert-raises error (gcd "a" 32)
"Passing a string value should raise an error")
(note "GCD computations")
(assert-equal 1 (gcd 3 5) "gcd(3,5)")
(assert-equal 8 (gcd 8 32) "gcd(8,32)")
(end-tests) ;; Stop the clock and print a summary
Edit (with Emacs of course) gcd-tests.el and run M-x eval-current-buffer
You should see in buffer *test-simple*:
gcd-tests.el
......
0 failures in 6 assertions (0.002646 seconds)
Now let us try from a command line:
$ emacs --batch --no-site-file --no-splash --load gcd-tests.el
Loading /src/external-vcs/emacs-test-simple/example/gcd.el (source)...
*scratch*
......
0 failures in 6 assertions (0.000723 seconds)