运行 "Before" 标记的钩子只有一次

Run the "Before"-tagged hook only once

我正在为 Rails 应用程序编写黄瓜和水豚测试。 我用标签 "dependent".

标记了不同功能文件中的一些场景

我写了一个 hooks.rb 文件,它位于支持目录下。我想让 if 块只执行一次,即使我有多个 "dependent" 标记的场景。

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" 标签 运行 来自多个功能文件的多个场景时,会执行多次。

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

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

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