Return NIL from functions that are returning lists of things.
* remove-tests * tagged-tests * remove-tags * run-tests * run-tags
Also clean up warning messages for test-documentation and test-code.
Better facilitates extensions.
Specialize on the type of assertion. This better facilitates extensions.
Improve the comparison of the expanded forms.
Do no collect the removed names, the collected list wasn't used.
new *keep-passing-asserts* flag to restrict memory usage
Tap output based off existing tap branch
Converts a test-result object into TAP format. Two new functions: * `write-tap` * `write-tap-to-file` To manage the indentation levels TAP wants, this uses [pprint-logical-block] and heavily uses the [~I] format directive, which is shorthand for [pprint-indent]. This gets a little tricky because indentation levels only take effect after a newline. [pprint-logical-block]: http://www.lispworks.com/documentation/HyperSpec/Body/m_ppr_lo.htm [~I]: http://www.lispworks.com/documentation/HyperSpec/Body/22_cec.htm [pprint-indent]: http://www.lispworks.com/documentation/HyperSpec/Body/f_ppr_in.htm refs #3
runs are complete. This serves as an integration/extensibility point for other systems. In my case, I'm going to have my continuous integration server listen for this condition and process the test results, something like: ```lisp (handler-bind ((lisp-unit:test-run-complete #'(lambda (trc) (process (lisp-unit:results trc))))) (asdf:test-system :foo)) ``` refs #3
about passing asserts. When non-nil, passing test assertions will be collected as objects and accessible in test-result objects. When nil, only the type of the passing assertion will be collected, saving significant memory. The default is T, which can consume lots of memory for large numbers of asserts (in my case, sbcl heap exhaustion with 95K assertions). refs #8