Sha256: 726c34a659037c8d6e6020d33e811d29acc76eca3e041d5a3a6a4729d76e2973

Contents?: true

Size: 1.85 KB

Versions: 1

Compression:

Stored size: 1.85 KB

Contents

module Teaspoon
  module Formatters

    autoload :CleanFormatter,         'teaspoon/formatters/clean_formatter'
    autoload :DotFormatter,           'teaspoon/formatters/dot_formatter'
    autoload :JunitFormatter,         'teaspoon/formatters/junit_formatter'
    autoload :PrideFormatter,         'teaspoon/formatters/pride_formatter'
    autoload :SnowdayFormatter,       'teaspoon/formatters/snowday_formatter'
    autoload :SwayzeOrOprahFormatter, 'teaspoon/formatters/swayze_or_oprah_formatter'
    autoload :TapFormatter,           'teaspoon/formatters/tap_formatter'
    autoload :TapYFormatter,          'teaspoon/formatters/tap_y_formatter'
    autoload :TeamcityFormatter,      'teaspoon/formatters/teamcity_formatter'

    class BaseFormatter

      attr_accessor :total, :passes, :pendings, :failures, :errors

      def initialize(suite_name = :default)
        @suite_name = suite_name.to_s
        @total    = 0
        @passes   = []
        @pendings = []
        @failures = []
        @errors   = []
      end

      def spec(result)
        @total += 1
        if result.passing?
          @passes << result
        elsif result.pending?
          @pendings << result
        else
          @failures << result
        end
      end

      def result(results)
        log_coverage(results["coverage"])
        return if failures.size == 0
        STDOUT.print("\n")
        raise Teaspoon::Failure if Teaspoon.configuration.fail_fast
      end

      # Exceptions come from startup errors in the server
      def exception(exception = {})
        raise Teaspoon::RunnerException
      end

      def suppress_logs?
        false
      end

      private

      def log_coverage(data)
        return if data.blank?
        report_output = Teaspoon::Coverage.new(data, @suite_name).reports
        STDOUT.print(report_output) unless suppress_logs?
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
teaspoon-0.7.9 lib/teaspoon/formatters/base_formatter.rb