lib/lopata/scenario_builder.rb in lopata-0.1.25 vs lib/lopata/scenario_builder.rb in lopata-0.1.26
- old
+ new
@@ -36,19 +36,23 @@
# @private
def build
filters = Lopata.configuration.filters
option_combinations.each do |option_set|
metadata = common_metadata.merge(option_set.metadata)
- scenario = Lopata::Scenario::Execution.new(title, option_set.title, metadata)
-
+ scenario_title = [title, option_set.title].compact.reject(&:empty?).join(' ')
+ scenario = Lopata::Scenario::Execution.new(scenario_title, metadata)
+
unless filters.empty?
next unless filters.all? { |f| f[scenario] }
end
+ exec_steps = []
steps_with_hooks.each do |step|
next if step.condition && !step.condition.match?(scenario)
- step.execution_steps(scenario).each { |s| scenario.steps << s }
+ step.execution_steps(scenario, parent: scenario.top).each { |s| exec_steps << s }
end
+ scenario.steps.push(*exec_steps.reject(&:teardown?))
+ scenario.steps.push(*exec_steps.select(&:teardown?))
world.scenarios << scenario
end
end