2010/10/25

RSpecの進捗カウントを表示

progressスタイルの出力時、ドットの個数を数える暮らしに疲れたので、100ごとにカウント表示するようにしてみた。

本当は 現在の進捗/全件数 としたいのだが、実行前に全件数を得る方法が見つけられない。

spec -c --format Spec::Runner::Formatter::ProgressBarWithCountFormatter spec

require 'spec/runner/formatter/progress_bar_formatter'

module Spec
  module Runner
    module Formatter
      class ProgressBarWithCountFormatter < ProgressBarFormatter
        def show_count
          @count ||= 0
          @count += 1
          @output.print "\n[%04d]" % @count if @count % 100 == 0
          @output.flush
        end
        def example_passed(example)
          super
          show_count
        end
        def example_pending(example, message, deprecated_pending_location=nil)
          super
          show_count
        end
        def example_failed(example, counter, failure)
          super
          show_count
        end
      end
    end
  end
end

0 件のコメント:

Archives