Class: PrettyFace::Formatter::ReportFeature

Inherits:
Object
  • Object
show all
Includes:
Formatting
Defined in:
lib/pretty_face/formatter/report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Formatting

#directory_prefix_for, #formatted_duration, #image_tag_for, #summary_percent, #table_image_for

Constructor Details

#initialize(feature, parent_filename) ⇒ ReportFeature

Returns a new instance of ReportFeature.



82
83
84
85
86
87
88
# File 'lib/pretty_face/formatter/report.rb', line 82

def initialize(feature, parent_filename)
  @scenarios = []
  @background = []
  @start_time = Time.now
  @description = feature.description
  @parent_filename = parent_filename
end

Instance Attribute Details

#backgroundObject

Returns the value of attribute background.



79
80
81
# File 'lib/pretty_face/formatter/report.rb', line 79

def background
  @background
end

#descriptionObject

Returns the value of attribute description.



79
80
81
# File 'lib/pretty_face/formatter/report.rb', line 79

def description
  @description
end

#durationObject (readonly)

Returns the value of attribute duration.



80
81
82
# File 'lib/pretty_face/formatter/report.rb', line 80

def duration
  @duration
end

#fileObject (readonly)

Returns the value of attribute file.



80
81
82
# File 'lib/pretty_face/formatter/report.rb', line 80

def file
  @file
end

#parent_filenameObject (readonly)

Returns the value of attribute parent_filename.



80
81
82
# File 'lib/pretty_face/formatter/report.rb', line 80

def parent_filename
  @parent_filename
end

#scenariosObject

Returns the value of attribute scenarios.



79
80
81
# File 'lib/pretty_face/formatter/report.rb', line 79

def scenarios
  @scenarios
end

#start_timeObject (readonly)

Returns the value of attribute start_time.



80
81
82
# File 'lib/pretty_face/formatter/report.rb', line 80

def start_time
  @start_time
end

#titleObject (readonly)

Returns the value of attribute title.



80
81
82
# File 'lib/pretty_face/formatter/report.rb', line 80

def title
  @title
end

Instance Method Details

#background_stepsObject



108
109
110
# File 'lib/pretty_face/formatter/report.rb', line 108

def background_steps
  @background.find_all { |step| step.keyword }
end

#background_titleObject



104
105
106
# File 'lib/pretty_face/formatter/report.rb', line 104

def background_title
  title = @background.find { |step| step.keyword.nil? }
end

#close(feature) ⇒ Object



90
91
92
93
94
95
96
# File 'lib/pretty_face/formatter/report.rb', line 90

def close(feature)
  @title = feature.title
  @duration = Time.now - start_time
  a_file = feature.file.sub(/\.feature/, '.html')
  to_cut = a_file.split('/').first
  @file = a_file.sub("#{to_cut}/", '')
end

#description?Boolean

Returns:

  • (Boolean)


141
142
143
# File 'lib/pretty_face/formatter/report.rb', line 141

def description?
  !description.nil?  && !description.empty?
end

#get_bindingObject



137
138
139
# File 'lib/pretty_face/formatter/report.rb', line 137

def get_binding
  binding
end

#has_background?Boolean

Returns:

  • (Boolean)


145
146
147
# File 'lib/pretty_face/formatter/report.rb', line 145

def has_background?
  background.length > 0
end

#scenario_average_durationObject



126
127
128
129
# File 'lib/pretty_face/formatter/report.rb', line 126

def scenario_average_duration
  durations = scenarios.collect { |scenario| scenario.duration }
  formatted_duration(durations.reduce(:+).to_f / durations.size)
end

#scenario_summary_for(status) ⇒ Object



116
117
118
119
# File 'lib/pretty_face/formatter/report.rb', line 116

def scenario_summary_for(status)
  scenarios_with_status = scenarios_for(status)
  summary_percent(scenarios_with_status.length, scenarios.length)
end

#scenarios_for(status) ⇒ Object



112
113
114
# File 'lib/pretty_face/formatter/report.rb', line 112

def scenarios_for(status)
  scenarios.find_all { |scenario| scenario.status == status }
end

#step_average_durationObject



131
132
133
134
135
# File 'lib/pretty_face/formatter/report.rb', line 131

def step_average_duration
  steps = scenarios.collect { |scenario| scenario.steps }
  durations = steps.flatten.collect { |step| step.duration }
  formatted_duration(durations.reduce(:+).to_f / durations.size)
end

#step_summary_for(status) ⇒ Object



121
122
123
124
# File 'lib/pretty_face/formatter/report.rb', line 121

def step_summary_for(status)
  steps_with_status = steps.find_all { |step| step.status == status }
  summary_percent(steps_with_status.length, steps.length)
end

#stepsObject



98
99
100
101
102
# File 'lib/pretty_face/formatter/report.rb', line 98

def steps
  steps = []
  scenarios.each { |scenario| steps += scenario.steps }
  steps
end