2007-09-12(Wed) [長年日記]
■1 Re:「autotestが止まらない。」
テストケースを増やして、いつの頃からかCtrl+C*2ではautotestが止まってくれなくなった。
カッとなって連打しても全然ダメ。
私も気がつくとAutotest::ScreenでCtrl+C 2回では止まらなくなりました(たしかそんなソースコードになっていた。リロードするんじゃなかったかな模造記憶。:interruptのフックでステータスメッセージを書き換えているそうです。パッチを投げてみるべき?)。
$HOME/.autotest
require 'autotest/screen' Autotest::HOOKS.delete(:interrupt)
これで止まるようになりました。正しい対処かどうかはわかりませんが。
■2 RSpec + AutoTest::Screen
Autotest::Screenが便利な件について。 (SaikyoLine.jp)を多いに参考にさせてもらいましたので、AutoTest::ScreenをRSpec(1.0.8)に対応させた私のautotest設定を貼っておきます。
require 'autotest/screen' Autotest::HOOKS.delete(:interrupt) Autotest::Screen.statusline = %q[|%c %m/%d|%w %=] 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
Autotest::Screen.statuslineはお好みで。どうぞご利用ください。
http://saikyoline.jp/weblog/2007/09/autotest_1.html<br>SaikyoLine.jp<br>autotestが止まらない。その2<br>Re:「autotestが止まらない。」 - 角谷HTML化計画 (2007-0...
こんにちは、どんなパッチを作ってよいやら悩んでしまったので顛末を報告してみました。<br>英語に自信がない・・・。
おおっ。すばらしい。パッチにできると英語できなくても問題ないからいいんですけどねー。"here's the patch:" って書けば済むから:-)