test-simple

Homepage: https://github.com/rocky/emacs-test-simple

Author: Rocky Bernstein

Updated:

Summary

Simple Unit Test Framework for Emacs Lisp

Commentary

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)

Dependencies

Reverse dependencies