在watir-cucumber执行期间,打印终端中每个步骤的持续时间

时间:2014-12-11 09:05:41

标签: cucumber watir scenarios

在执行watir-cucumber期间,是否有标准方法打印终端中每个步骤的持续时间?

enter image description here 使用"后续步骤"可以制作某种发明。和一个全局变量。但是,有一个正确的方法吗?

2 个答案:

答案 0 :(得分:1)

你可以使用这样的钩子:

Before do 
  @last_time = Time.new  
end

AfterStep do
  now = Time.new
  puts "Step duration: #{((now - @last_time)*100).round} ms"    # if (now-@last_time) > 10        
  @last_time = now
end

通过在新行上输出持续时间更加冗长,但除非您想要更深入(通过创建自己的格式化程序),否则无法输出您指定的内容。

如果您只对超过特定阈值的步骤感兴趣,请取消注释if

答案 1 :(得分:0)

最简单的方法是使用Ruby内置的Time类。使用Time.new,我们可以在执行步骤定义中的代码之前和之后将当前时间记录到局部变量中。然后我们通过从end_time减去start_time来计算持续时间。

#get the start time
 start_time = Time.new

#do whatever the step needs to do here

#get the end time
 end_time = Time. new

#calculate duration 
duration = end_time - start_time
puts duration