Autotest::Screenが便利な件について。

[2008-08-10 追記] ここで張っているソースについて新しいエントリを書きました。

autotest.gif

ZenTest – autotestに同梱されているAutotest::Screenを使うと、Screenのステータスにテスト状況をリアルタイムに出せる。
ただ、ZenTest (3.6.0)のものは結果をうまく拾えていないようだったので少し書き換えてみた。
ついでに毎回走らせる前にもステータスを変えるようにした。ファイル保存→結果表示までに間があって、ちゃんと動いてくれてるか落ち着かなかったもんで。

$HOME/.autotest に追記する。

require 'autotest/screen'
Autotest::Screen.statusline = %q[%{=r dd} %-w%{=b dd}[%n] %t %{-}%+w %=]

class Autotest::Screen
Autotest.add_hook :run_command do |at|
message 'Testing...' if execute?
end

Autotest.add_hook :ran_command do |at|
if execute? then
output = at.results.join
failed = output.scan(/^\s+\d+\) (Failure|Error):\n(.*?)\((.*?)\)/)
if failed.size == 0 then
message "All Green", :green
else
f,e = failed.partition { |s| s[0] =~ /Failure/ }
message "Red F:#{f.size} E:#{e.size}", :red
end
end
end
end
タイトルとURLをコピーしました