Sha256: eb4a29d99db49120bdbb0b41a64cc3621a5974d0a292abcd49fa74ee1640cb8a

Contents?: true

Size: 1.73 KB

Versions: 2

Compression:

Stored size: 1.73 KB

Contents

require 'cucumber/core/ast/scenario_outline'

module UglyFace
  module Formatter
    module ViewHelper

      def start_time
        @tests_started.strftime("%a %B %-d, %Y at %H:%M:%S")
      end

      def step_count
        @step_mother.steps.length
      end

      def scenario_count
        @step_mother.scenarios.length
      end

      def total_duration
        @duration
      end

      def step_average_duration(features)
        scenarios = features.collect { |feature| feature.scenarios }
        steps = scenarios.flatten.collect { |scenario| scenario.steps }
        has_duration = steps.flatten.reject { |step| step.duration.nil? }
        durations = has_duration.collect { |step| step.duration }
        format_duration get_average_from_float_array durations
      end

      def scenario_average_duration(features)
        scenarios = features.collect { |feature| feature.scenarios }
        has_duration = scenarios.flatten.reject { |scenario| scenario.duration.nil? }
        durations = has_duration.collect { |scenario| scenario.duration }
        format_duration get_average_from_float_array durations
      end

      def scenarios_summary_for(status)
        summary_percent(@step_mother.scenarios(status).length, scenario_count)
      end

      def steps_summary_for(status)
        summary_percent(@step_mother.steps(status).length, step_count)
      end

      def failed_scenario?(scenario)
        scenario.status == :failed
      end


      private

      def get_average_from_float_array(arr)
        arr.reduce(:+).to_f / arr.size
      end

      def summary_percent(number, total)
        percent = (number.to_f / total) * 100
        "#{number} <span class=\"percentage\">(#{'%.1f' % percent}%)</span>"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ugly_face-0.8 lib/ugly_face/formatter/view_helper.rb
ugly_face-0.7 lib/ugly_face/formatter/view_helper.rb