Replace assert-class function with generic function record-failure.
[lisp-unit.git] / README.md
blob3e0f6281c30fea770a74e26a907371bdfae0cd92
1 ## lisp-unit
3 *lisp-unit* is a Common Lisp library that supports unit testing. It is
4 an extension of the [library written by Chris Riesbeck][orig]. There
5 is a long history of testing packages in Lisp, usually called
6 "regression" testers. More recent packages in Lisp and other languages
7 have been inspired by [JUnit for Java][JUnit].
9 [Documentation is located on the project wiki.][wiki]
11 ### Features
13 * Written in portable Common Lisp
14 * Loadable as a single file
15 * Loadable with [ASDF][] or [Quicklisp][]
16 * Simple to define and run tests
17 * Redfine functions and macros without reloading tests
18 * Test return values, printed output, macro expansions, and conditions
19 * Fined grained control over the testing output
20 * Store all test results in a database object that can be examined
21 * Group tests by package for modularity
22 * Group tests using tags
23 * Signal test completion and return results with the condition.
25 ### Extensions
27 * Floating point predicates
28 * [Test Anything Protocol][TAP] output
30 ### How to use lisp-unit
32 The core definitions of *lisp-unit* may be used by loading the single
33 file 'lisp-unit.lisp'. To use the extensions, *lisp-unit* must be
34 loaded using either [Quicklisp][] or [ASDF][].
36 1. Load (or compile and load) as a single file : `(load "lisp-unit")`.
37 2. Load using [Quicklisp][] : `(ql:quickload :lisp-unit)`.
38 3. Load using [ASDF][] : `(asdf:load-system :lisp-unit)`.
40 ## Version 0.9.4 Features
42 Output for the [Test Anything Protocol][TAP] has been implemented as
43 an extension by [Ryan Davis][ryepup] of AccelerationNet. Ryan is also
44 responsible for the signal test completion feature that is used for
45 the [TAP][] output.
47 ## Version 1 Remaining Tasks
49 * (1.0.0) Expanded internal testing.
51 ### Future Features
53 * Fixtures
54 * Test Suites
55 * Benchmarking tools
57 [orig]: <http://www.cs.northwestern.edu/academics/courses/325/readings/lisp-unit.html>
58   "Original Lisp Unit"
59 [wiki]: <https://github.com/OdonataResearchLLC/lisp-unit/wiki>
60   "Lisp Unit Wiki"
61 [JUnit]: <http://www.junit.org> "JUnit"
62 [Quicklisp]: <http://www.quicklisp.org> "Quicklisp"
63 [ASDF]: <http://common-lisp.net/project/asdf/> "ASDF"
64 [TAP]: <http://testanything.org/> "Test Anything Protocol"
66 ## 0.9.4 Acknowledgments
68 * [Ryan Davis][ryepup] for the TAP extension and signaling test completion.
69 * [Russ Tyndall][bobbysmith007] for cleaning up the use-debugger option.
70 * [Mark Cox][markcox80] for catching a lisp-unit bug in CCL.
72 [ryepup]: <https://github.com/ryepup> "Ryan Davis"
73 [bobbysmith007]: <https://github.com/bobbysmith007> "Russ Tyndall"
74 [markcox80]: <https://github.com/markcox80> "Mark Cox"