野ログはノロキュアMaxHeart
2008-05-23
_ ZenTestのautotestとscreenでRailsのテストを行うメモ
いまさらかよ!
って感じですけど、いまさら使い始めたのでメモ
現在screen使ってる人向け。
注意
Ruby1.8.6未満だとautotest中に問題が発生する
参考
インストール
sudo gem install ZenTest redgreen
設定
$HOME/.autotest
require 'autotest/screen'
require 'autotest/redgreen'
Autotest::HOOKS.delete(:interrupt)
Autotest::Screen.statusline = "%{= wg} %-w%{=bu dr}%n %t%{-}%+w %= %{=b wb}%y/%m/%d %{=b wm}%c"
class Autotest::Screen
SCREEN_COLOR[:green] = 'gw'
SCREEN_COLOR[:yellow] = 'yk'
Autotest.add_hook :run_command do |at|
message 'Running' if execute?
end
Autotest.add_hook :quit do |at|
clear if execute?
end
Autotest.add_hook :ran_command do |at|
return unless execute?
results = [at.results].flatten.join("\n")
output = results.slice(/(\d+)\sexamples?,\s*(\d+)\s.*failures?(?:,\s*(\d+)\s.*pendings?)?/)
if output
ex,fail,pend = $~.captures.map {|e| e.to_i}
if 0 < fail
message "FAIL #{ex}ex, F:#{fail} ", :red
elsif 0 < pend
message "Pend #{ex}ex, F:#{fail} P:#{pend}", :yellow
else
message "All Green #{ex}ex", :green
end
end
end
end
statusline部分は自分のscreenの設定にあわせて。
参考
http://kakutani.com/20070912.html#p02
使い方
開始
Railsプロジェクトのルートディレクトリで
autotest
停止
CTRL+Cを二回連続で停止
[ツッコミを入れる]
[]

