lib/lopata/observers/console_output_observer.rb in lopata-0.1.25 vs lib/lopata/observers/console_output_observer.rb in lopata-0.1.26
- old
+ new
@@ -1,7 +1,6 @@
require_relative 'backtrace_formatter'
-require_relative 'group_tree'
require 'forwardable'
module Lopata
module Observers
# @private
@@ -32,37 +31,39 @@
puts colored(message, scenario.status)
statuses[scenario.status] ||= 0
statuses[scenario.status] += 1
- if scenario.failed?
- GroupTree.steps_hierarhy(scenario.steps).walk_through do |step|
- if step.is_a?(Lopata::StepExecution)
- next unless step.loggable?
- puts colored(" #{status_marker(step.status)} #{step.title}", step.status)
- puts indent(4, backtrace_formatter.error_message(step.exception, include_backtrace: true)) if step.failed?
- else # GroupTree
- group = step
- if %i{ passed skipped }.include?(group.status)
- puts colored(" #{status_marker(group.status)} #{group.title}", group.status)
- false
- else
- true
- end
+ log_steps(scenario.steps) if scenario.failed?
+
+ flush
+ end
+
+ # @private
+ def log_steps(steps)
+ steps.each do |step|
+ next unless step.loggable?
+ if step.group?
+ status = step.status
+ if %i{ passed skipped ignored }.include?(status)
+ puts colored(" #{status_marker(step.status)} #{step.title}", status)
+ else
+ log_steps(step.steps)
end
+ else
+ puts colored(" #{status_marker(step.status)} #{step.title}", step.status)
+ puts indent(4, backtrace_formatter.error_message(step.exception, include_backtrace: true)) if step.failed?
end
end
-
- flush
end
private
def colored(text, status)
case status
when :failed then red(text)
when :passed then green(text)
- when :skipped then cyan(text)
+ when :skipped, :ignored then cyan(text)
when :pending then yellow(text)
else text
end
end