如何在每个[给定,何时,然后]步骤之前和之后运行ruby方法?

时间:2014-08-12 15:59:09

标签: ruby cucumber gherkin

我试图获得一些易于阅读的时间指标,以了解每个方案的步骤需要多长时间才能运行。

我有将行插入日志记录表的方法,如下所示:

puts "#{Time.now} - Starting Given"

puts "#{Time.now} - Ending Given"

etc...

我希望在每个步骤的开始和结束时自动调用它们,但我只能找到在整个场景之前或之后运行它们的方法,而不是每个步骤。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:2)

Ruby带有一个benchmarking module,可以很容易地为你处理这些东西。

修改以解决以下评论

在Cucumber中,有一个名为Around的钩子可以让你根据自己的意愿包装你的场景。例如,直接来自文档:

Around('@fast') do |scenario, block|
  Timeout.timeout(0.5) do
    block.call #actually runs the scenario
  end
end