読者です 読者をやめる 読者になる 読者になる

test-more.elを書いています

emacs test

Emacs Lisp版 Test::Moreを書き始めました。
コードの大部分は @さんのcl-test-moreをベースにしています。
現状はかなり簡素化しています。


Emacsにはテストフレームワークがいくつか存在しているのですが、
しっくりこなかったので普段 Perlで利用するような感じでできたら
いいかなと思って書きました。

実装済み関数

  • ok
  • is
  • isnt
  • diag
  • is-print
  • is-error
  • is-type
  • like
  • skip
  • pass
  • fail

定義はすべて test-more:という prefixがついています。

サンプル

まだ書きかけなので全然なのですが、以下のように利用します。
cl-test-more風です。

(require 'test-more)
(test-more:import)

(plan 3)

(ok (typep "test-more" 'string) "string type test")
(is (+ 1 1) 2 "add test")

(like "987" "^[0-9]+$" "matching test test")

(finalize)

関数名は基本的に test-more:is みたいな感じに定義しています。
特殊なマクロの中では test-more:isを isで参照できる、という
ようなものも考えられますが、現状は test-more:importを呼ぶと
test-more:を除去したシンボルを internするという形にしています。
このあたりはまだ検討の余地有りですかね。

eval-bufferで実行

eval-bufferで実行すると以下のようになります。

proveで実行

TAPなので、proveでも実行できます。
その場合は以下のようなコマンドを実行します。

  % prove -v --exec='emacs -Q --script' sample.el

実行結果

おわりに

たまには他人の流儀に従うということもしないといけないん
だろうと思うのですが、慣れてるものがどうしても使いたくて
作りました。本格利用する前に他のテストフレームワーク使ってみて
いろいろ考えようと思います。