我正在使用calabash-ios / cucumber中的AfterStep钩子。
我想知道我钩子里面最后执行的步骤。
AfterStep do |scenario|
puts "Step: #{scenario.name} #{scenario.title} #{scenario.gherkin_statement}"
end
我可以看到该方案已传入,但如何访问当前正在运行的步骤?我在scenario docs内没有看到关于此的任何信息。
我认为该步骤将被传递到AfterStep
钩子。有线索吗?
答案 0 :(得分:1)
您可以参考this example code,它与AfterStep钩子中的步骤索引一起使用。
示例:强>
CALABASH_COUNT = {:step_index => 0, :step_line => nil}
#TODO change this approach as it breaks scenario outlines
Before do |scenario|
begin
CALABASH_COUNT[:step_index] = 0
CALABASH_COUNT[:step_line] = scenario.raw_steps[CALABASH_COUNT[:step_index]].line
rescue Exception => e
puts "#{Time.now} - Exception:#{e}"
end
end
AfterStep do |scenario|
CALABASH_COUNT[:step_index] = CALABASH_COUNT[:step_index] + 1
raw = scenario.raw_steps[CALABASH_COUNT[:step_index]]
CALABASH_COUNT[:step_line] = raw.line unless raw.nil?
end
Python中的Behave BDD framework允许更简单的step.name
类型访问器,但其他似乎更难,需要上述计算当前步骤的技术,然后使用索引从中查找名称原始步骤文本。