提问者:小点点

只运行一次“之前”标记的挂钩


我正在为Rails应用程序编写cucumber和水豚测试。我已经用标记“dependent”标记了不同功能文件中的一些场景。

我已经编写了一个位于support目录下的hooks.rb文件。我想让if块只执行一次,即使我有多个“依赖”标记场景。

Before('@dependent') do
  $dunit ||= true  
  if $dunit then
    puts "Hey I am running now " 
    $dunit = false
  end 
end

就我而言,声明,

 puts "Hey I am running now " 

…当我从带有“dependent”标记的多个功能文件中运行多个场景时,会执行多次。

我怎样才能让只执行一次“Hey I am running now”


共1个答案

匿名用户

自false||true==true以来,每当块开始时,您都会将$dunit的值重置为true。如果你像下面这样重写块,它应该可以工作

Before('@dependent') do
  $dunit ||= false
  return $dunit if $dunit
  puts "Hey I am runnig now " 
  $dunit = true
end