Homepage: https://www.gnu.org/software/emacs
Author: Christian Ohler
Emacs Lisp Regression Testing
ERT is a tool for automated testing in Emacs Lisp. Its main features are facilities for defining and running test cases and reporting the results as well as for debugging test failures interactively. The main entry points are `ert-deftest', which is similar to `defun' but defines a test, and `ert-run-tests-interactively', which runs tests and offers an interactive interface for inspecting results and debugging. There is also `ert-run-tests-batch-and-exit' for non-interactive use. The body of `ert-deftest' forms resembles a function body, but the additional operators `should', `should-not', `should-error', `skip-when' and `skip-unless' are available. `should' is similar to cl's `assert', but signals a different error when its condition is violated that is caught and processed by ERT. In addition, it analyzes its argument form and records information that helps debugging (`cl-assert' tries to do something similar when its second argument SHOW-ARGS is true, but `should' is more sophisticated). For information on `should-not' and `should-error', see their docstrings. The `skip-when' and `skip-unless' forms skip the test immediately, which is useful for checking the test environment (like availability of features, external binaries, etc). See ERT's Info manual `(ert) Top' as well as the docstrings for more details. To see some examples of tests written in ERT, see the test suite distributed with the Emacs source distribution (in the "test" directory).