test-more.elを書いています
Emacs Lisp版 Test::Moreを書き始めました。
コードの大部分は @nitro_idiotさんの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するという形にしています。
このあたりはまだ検討の余地有りですかね。
proveで実行
TAPなので、proveでも実行できます。
その場合は以下のようなコマンドを実行します。
% prove -v --exec='emacs -Q --script' sample.el
おわりに
たまには他人の流儀に従うということもしないといけないん
だろうと思うのですが、慣れてるものがどうしても使いたくて
作りました。本格利用する前に他のテストフレームワーク使ってみて
いろいろ考えようと思います。