;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*- ;;;; * Introduction ;;;; FiveAM is a testing framework. It takes care of all the boring ;;;; bookkeeping associated with managing a test framework allowing ;;;; the developer to focus on writing tests and code. ;;;; FiveAM was designed with the following premises: ;;;; - Defining tests should be about writing tests, not ;;;; infrastructure. The developer should be able to focus on what ;;;; they're testing, not the testing framework. ;;;; - Interactive testing is the norm. Common Lisp is an interactive ;;;; development environment, the testing environment should allow the ;;;; developer to quickly and easily redefine, change, remove and run ;;;; tests. (defpackage :it.bese.fiveam (:use :common-lisp :alexandria) (:nicknames :5am :fiveam) #+sb-package-locks (:lock t) (:export ;; creating tests and test-suites #:make-suite #:def-suite #:def-suite* #:in-suite #:in-suite* #:test #:def-test #:get-test #:rem-test #:test-names #:*default-test-compilation-time* ;; fixtures #:def-fixture #:with-fixture #:get-fixture #:rem-fixture ;; running checks #:is #:is-every #:is-true #:is-false #:signals #:finishes #:skip #:pass #:fail #:*test-dribble* #:for-all #:*num-trials* #:*max-trials* #:gen-integer #:gen-float #:gen-character #:gen-string #:gen-list #:gen-tree #:gen-buffer #:gen-one-element ;; running tests #:run #:run-all-tests #:explain #:explain! #:run! #:debug! #:! #:!! #:!!! #:*run-test-when-defined* #:*debug-on-error* #:*debug-on-failure* #:*on-error* #:*on-failure* #:*verbose-failures* #:*print-names* #:results-status)) ;;;; You can use #+5am to put your test-defining code inline with your ;;;; other code - and not require people to have fiveam to run your ;;;; package. (pushnew :5am *features*) ;;;;@include "check.lisp" ;;;;@include "random.lisp" ;;;;@include "fixture.lisp" ;;;;@include "test.lisp" ;;;;@include "suite.lisp" ;;;;@include "run.lisp" ;;;;@include "explain.lisp" ;;;; * Colophon ;;;; This documentaion was written by Edward Marco Baringer ;;;; <mb@bese.it> and generated by qbook. ;;;; ** COPYRIGHT ;;;; Copyright (c) 2002-2003, Edward Marco Baringer ;;;; All rights reserved. ;;;; Redistribution and use in source and binary forms, with or without ;;;; modification, are permitted provided that the following conditions are ;;;; met: ;;;; - Redistributions of source code must retain the above copyright ;;;; notice, this list of conditions and the following disclaimer. ;;;; - Redistributions in binary form must reproduce the above copyright ;;;; notice, this list of conditions and the following disclaimer in the ;;;; documentation and/or other materials provided with the distribution. ;;;; - Neither the name of Edward Marco Baringer, nor BESE, nor the names ;;;; of its contributors may be used to endorse or promote products ;;;; derived from this software without specific prior written permission. ;;;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ;;;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ;;;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ;;;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ;;;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ;;;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ;;;; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ;;;; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ;;;; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ;;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ;;;; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE