石橋秀仁です。

RubyUnitを使っています。とても便利です。

ただ、標準の'runit/cui/testrunner.rb'は、例外(error, failure)
のコールスタックを全部出力してくれません。このため、
デバッグのときに少し困っていました。

そこで、コールスタックを全て出力しようと、なんとなくtestrunner.rbを
書きかえたら、RubyUnit自身の内部的な呼び出し情報が大量に出力されて
しまいました。つまり、もっと見づらくなりました (^^;

というわけで、
 * RubyUnitの内部的なコールは出力しない
 * Rubyインタープリタの例外終了時と同じフォーマットで出力
するパッチを書きましたので、添付します。

# 最新版は0.0.4でしたっけ?これは0.0.3用です。

diff -cr ../contrib/rubyunit-0.0.3/runit/cui/testrunner.rb runit/cui/testrunner.rb
*** ../contrib/rubyunit-0.0.3/runit/cui/testrunner.rb	Sat Jan 22 00:00:00 2000
--- runit/cui/testrunner.rb	Mon Apr  3 21:26:10 2000
***************
*** 91,104 ****
      def print_failures(result)
        @io.puts "Failures: #{result.failure_size}" if result.failure_size > 0
        result.failures.each do |f|
!         @io.puts f
        end
      end
    
      def print_errors(result)
        @io.puts "Errors: #{result.error_size}" if result.error_size > 0
        result.errors.each do |e|
!         @io.puts e
        end
      end
    end
--- 91,120 ----
      def print_failures(result)
        @io.puts "Failures: #{result.failure_size}" if result.failure_size > 0
        result.failures.each do |f|
!         @io.print f.at[0], ": ", f.err, " (", f.err.type, ")\n"
!         for at in f.at[1..-1]
!           file = at.split(":")[0]
!           for loadpath in $:
!             match = true if file =~ "^#{loadpath}/runit/"
!           end
!           next if match
!           @io.print "\tfrom ", at, "\n"
!         end
        end
      end
    
      def print_errors(result)
        @io.puts "Errors: #{result.error_size}" if result.error_size > 0
        result.errors.each do |e|
!         @io.print e.at[0], ": ", e.err, " (", e.err.type, ")\n"
!         for at in e.at[1..-1]
!           file = at.split(":")[0]
!           for loadpath in $:
!             match = true if file =~ "^#{loadpath}/runit/"
!           end
!           next if match
!           @io.print "\tfrom ", at, "\n"
!         end
        end
      end
    end

--
Hideto "rubyholic" ISHIBASHI