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 件のコメント:
コメントを投稿