Common Lisp PROtocol and TESTcase manager

PROTEST is a tool for defining protocols and test cases written in and for Common Lisp, featuring integration with multiple one testing framework. (More will come.)


;; clone PROTEST into your local-projects directory, we are not in Quicklisp yet
(ql:quickload :protest)
(use-package :protest)

;; depending on your choice of test library, load one of the following
(ql:quickload :protest/parachute)
(use-package :protest/parachute)

(ql:quickload :protest/1am)
(use-package :protest/1am)

;; (ql:quickload :protest/5am) ;; TODO
;; (use-package :protest/5am) ;; TODO

;; (ql:quickload :protest/prove) ;; TODO
;; (use-package :protest/prove) ;; TODO


The currently implemented modules are:

The modules planned for development (someday) are:


Load the ASDF system PROTEST/TEST and run (PROTEST/TEST:RUN-ALL-TESTS), or perform ASDF's TEST-OP on the PROTEST module.

Please note that this does not invoke tests for the modules integrating PROTEST with testing libraries; see the manual for each such module to find the means of testing it.


All of PROTEST is licensed under GNU Lisp Lesser General Public License, except the PROTEST/PARACHUTE system which is an extension to the Parachute library and therefore licensed under the Artistic license.

PROTEST ? 2018 Micha? "phoe" Herda

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Micha? "phoe" Herda <>