Gauche でテスト作成支援 gca.el

昨日、「test* に与えるテスト名の命名が面倒だ」と書いた所、naotoさんから gca.el という koguroさん作の Emacs Lisp を教えていただきました。
これは便利。

gca.el

テストケース作成支援のためのツールを作りました(拙作のEmacs用のユーティリティに含めてあります gca-20060903.tar.gz)。 単体テストをきちんと書くのは面倒ですが、通常コードを書くときは、無意識のうちにgosh上で動作確認をしつつコードを書き進めているかと思います。この動作確認の結果を基に単体テストを作成してしまおうというのがこのツールです。

デモ

実際に動作しているデモムービーを見るとわかりやすいです。(GaucheFest:koguroにあります)

インストール

gca.el の先頭に書いてある通り書いたら動きました。

(require 'gca)

;; C-c C-uで(use module)をインサートする
(define-key scheme-mode-map "\C-c\C-u" 'gca-insert-use) 
(let ((m (make-sparse-keymap)))
  ;; C-c C-d h でドキュメントを検索する
  (define-key m "h" 'gca-show-info)
  ;; C-c C-d i でauto-info-modeの切り替えを行う。(ONの場合自動的にinfoを表示します)
  (define-key m "i" 'auto-info-mode)
  (define-key scheme-mode-map "\C-c\C-d" m))

;; C-c C-,でinfoの次のトピックを表示します(検索結果が複数あった場合)
(define-key scheme-mode-map [(control c) (control ,)] 'gca-info-next)

;; C-. でシンボルを補完する
(define-key scheme-mode-map [(control .)] 'gca-completion-current-word)

;; C-c C-. でコードのひな形をインサートする
(define-key scheme-mode-map [(control c) (control .)] 'gca-insert-template)
(define-key c-mode-map [(control c) (control .)] 'gca-insert-template)

;; C-c t でテストケースをインサートする (run-schemeでtgosh.scmを使う必要があります)
;; C-u で引数を与えると、その番号で実行された結果をもとにしてテストケースを作成します。
;; 省略時は直前の実行結果が使われます。
(define-key scheme-mode-map "\C-ct" 'gca-make-test)
;; C-c h で履歴をみる (run-schemeでtgosh.scmを使う必要があります)
(define-key scheme-mode-map "\C-ch" 'gca-show-history)

(setq scheme-program-name "gosh ~/lisp/tgosh.scm")