Thanks Driven Life

日々是感謝

undercover.el で Emacs Lisp のテストも Coveralls.io に登録するぞ!

(追記 20141010)

カバレッジとりたいファイルを (undercover "foo.el$") と指定していましたが version 20141009.606 より正規表現ではなくワイルドカードでの指定となりました。

See:

Undercover function arguments · Issue #1 · sviridov/undercover.el · GitHub

経緯

求めてたものを見つけた。仕事中に見つけたので書きかけの PHP のコードが消えました。

結論から

登録できました!すばら!

gongo/json-reformat | Build #41 | Coveralls - Test Coverage History & Statistics

導入

素材は json-reformat.el を使いました。

compare/b11e296...65b9517

とりあえずやったことをつらつらと

1. ert-runner の導入

これまでは Makefileert-run-tests-batch-and-exit を使ってテスト走らせてましたが、README にも書いてある通り、ert-runner で動かす前提の模様だったので、ついでに乗り換え。

ここらへんとかがそれっぽい。

2. undercover の呼び出し

README に従って

(require 'ert)
(require 'undercover)

(undercover "json-reformat.el$") ;; カバレッジ取りたいファイルを指定

(require 'json-reformat)         ;; ↑ の undercover 呼んだ **後に** require

3. これだけです

簡単ですね。

もちろん Coveralls.io の方でもリポジトリを有効にしておきましょう

f:id:gongoZ:20141007212424p:plain

結果

素晴しい!

まとめ

かつて同じようなものを自分も作ろうとして edebug でがんばってたんですが、結局諦めてました。このライブラリに感謝。

おまけ

久々に Emacs Lisp コードを TravisCI で走らせたらいろいろ落ちてて

Emacsのバージョンマネージャ "evm" がEmacs LispのCIにおすすめ - Copy/Cut/Paste/Hatena

上記記事にもあった通り ppa:cassou/emacsemacs-snapshot が怪しかったりしたので evm を途中まで試してたのですが

そんな感じで乗り越えました。ありがとうございます!

あと、Cask が Emacs23 を手放したの今日知ったので TravisCI でテスト回しづらくなったなという。まあ仕方ない。