2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |
2008-01-12
lisp-unit
Clikiからは新しく登録されたり更新されたパッケージ(ライブラリ)のRSSがフィードされているのですが、ふと思い立って、更新されたパッケージを追い掛けてやたらインストールして、試したログをここに書いてみることにしました。
色々な面白いパッケージが沢山あるのですが、如何せん情報がみつけられないことが多いので、片っ端からインストールしてみれば、何か面白いもの発見できるかな、という安易な考えです。
とりあえず、今回は、lisp-unitを試してみることにしました。前までは、LispUnitという名前だったのですが、この度名前をlisp-unitに変更したようです。
パッケージ名 | lisp-unit |
本拠地サイト | no title |
Cliki | CLiki: lisp-unit |
ASDF-INSTALL | ○ |
(asdf-install:install :lisp-unit) | ○ |
インストール
asdf-install可能なので、(asdf-install:install :lisp-unit)で一発インストール完了です。
使ってみる
かなり古くからある、リグレッションテストのパッケージ:RTと大体同じような使い勝手に思えました。
テストをDEFINE-TESTで定義して、RUN-TESTで実行するところなど共通点は多いと思います。
(defpackage #:cl-2008-01-12 (:use #:cl)) (in-package #:cl-2008-01-12) (defun fib (n) (cond ((< n 2) n) ('T (+ (fib (1- n)) (fib (- n 2)))))) (defun fib-iter (n) (do ((cnt n (1- cnt)) (a1 1 (+ a1 a2)) (a2 0 a1)) ((< cnt 2) a1)))
のようなファイル(cl-2008-01-12.lisp)があるとすると、
(require :lisp-unit) (load "cl-2008-01-12") (defpackage :test_cl-2008-01-12 (:use #:cl #:lisp-unit)) (in-package #:test_cl-2008-01-12) (define-test fib (assert-eql 55 (cl-2008-01-12::fib 10)) (assert-eql 1 (cl-2008-01-12::fib 1)) (loop :for i from 1 :to 30 :do (assert-eql (cl-2008-01-12::fib-iter i) (cl-2008-01-12::fib i))) ) (run-all-tests :test_cl-2008-01-12) (cl-2008-01-12::fib-iter 0) ;=>FIB: 32 assertions passed, 0 failed.
のように書いてテストが書けます。
RTでは、deftestに一つずつ別の名前を付けなくちゃいけなかったりするので、自分は、それ用のマクロを定義して使ったりしてましたが、lisp-unitはRTより使い勝手は良いようです。
本拠地のサイトに丁寧な説明が用意されています。
自分も一時ユニットテストを使っていたのですが、テストを書くのが段々面倒になってしまい、ひたすらSLIMEのコンパイルエラーの指摘に頼ってコードを書くようになってしまいました。
これを使ってもう少し、精神衛生上すっきりしたコード書きができるようになりたいものです。
SLIMEで支援用ELISPを書いてCompile Defunと同じ位簡単にテストまで完了したいという妄想はあるのですが、なかなか自分の力量的に難しいなあ。