2010年11月3日水曜日

SBCLとCCLでのカバレッジの取りかた

SBCLとClozure Common Lisp(以下CCL)にはファイルのカバレッジを取り、HTMLで出力してくれる機能があるようです。

CCLでは ccl:*compile-code-coverage*をTにしてからカバレッジを取りたいファイルをコンパイル->ロードして、テストの実行とカバレッジの集計結果出力を行います。

SBCLでは、SB-COVERパッケージを読み込んでから、ファイルのコンパイル、ロード、テスト実行、結果の出力を行います。

結果の出力時に指定するパスは、CCLではファイル名ですが、SBCLではディレクトリ名のようです。

(defun compile-and-load (path)
(compile-file path)
(load path))

;;; clozure common lisp
(setf ccl:*compile-code-coverage* t)

(compile-and-load "path/to/source")

(run-test)

(ccl:report-coverage "file")

;;; SBCL
(require 'sb-cover)

(declaim (optimize sb-cover:store-coverage-data))

(compile-and-load "path/to/source")

(run-test)


(sb-cover:report "dir")

0 件のコメント:

コメントを投稿