lib/lopata/observers/console_output_observer.rb in lopata-0.1.21 vs lib/lopata/observers/console_output_observer.rb in lopata-0.1.22
- old
+ new
@@ -1,6 +1,7 @@
require_relative 'backtrace_formatter'
+require_relative 'group_tree'
require 'forwardable'
module Lopata
module Observers
# @private
@@ -32,12 +33,23 @@
statuses[scenario.status] ||= 0
statuses[scenario.status] += 1
if scenario.failed?
- scenario.steps.each do |step|
- 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?
+ 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
+ end
end
end
flush
end