ert.el が素敵

どもです。
こないだ書いた ert.el ですが,とても素敵。
el-expectation.el で不満に思っていた,fixture とかですが,
それはワタシのテクのなさが原因だったと,ERT のマニュアルを読んで実感。
すんませんでした。あと,let をガシガシ使えるのが非常に便利。


ほいで,便利なのですが,テストを書いていて実行するときに,
M-x ert から実行するのが,段々と面倒臭くなってまいりました。
とくに selector を指定するのが。
なので,下記の様な関数を .emacs (ワタシの場合は,.emacs.ntemacs.el)に用意して,
編集中のテストを C-cC-c で実行できるようにしました。今のところ便利です。
前提条件として,

(ert-deftest test-foo ()
  ...)

の形式で書かれていることを必要とします。
このS式内で,C-cC-c すると,test-foo を実行します。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; for ert.el
(defun my-run-ert-test-maybe ()
  (interactive)
  (when (eq major-mode 'emacs-lisp-mode)
    (save-excursion
      (beginning-of-defun)
      (let ((line (buffer-substring-no-properties (point)
                                                  (save-excursion
                                                    (end-of-line)
                                                    (point)))))
        (when (string-match "^(ert-deftest \\([^ \n]+\\) ()$" line)
          (ert (match-string-no-properties 1 line)))))))

(define-key emacs-lisp-mode-map "\C-c\C-c" 'my-run-ert-test-maybe)