仅运行一次“Before”标记的挂钩

时间:2016-01-28 13:13:56

标签: ruby-on-rails cucumber capybara

我正在为Rails应用程序编写黄瓜和水豚测试。 我已使用标记“dependent”标记了不同功能文件中的一些方案。

我写了一个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 " 

...当我使用“依赖”标记从多个要素文件中运行多个场景时,会多次执行。

如何让puts "Hey I am running now "只执行一次?

1 个答案:

答案 0 :(得分:0)

每次块启动时,您都会将$ dunit的值重置为true,因为false || true == true。如果你重写下面的块,它应该工作

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