Block mehrmals in Cucumber Around Hook (Ruby) aufrufen

Ich versuche, ein Szenario mehrere (30) Mal auszuführen, um eine schöne statistische Stichprobe zu erhalten. Der Block wird jedoch nur einmal ausgeführt. jedes weitere Mal wird das Szenario aufgerufen und nicht ausgeführt (obwohl es besagt, dass das Szenario mit einer Zeit von ungefähr 5 ms erfolgreich abgeschlossen wurde).

<code>Around('@mass_benchmark') do |scenario, block|
  $seconds_taken = "SECONDS TAKEN NOT SET"
  @time_array = []
  30.times do
    before_hook(scenario)
    block.call
    after_hook(scenario)
    @time_array << $seconds_taken
  end
  write_time_array_to_file(@time_array, scenario_name)
end
</code>

Das Tag @mass_benchmark führt diesen Block aus, im Gegensatz zu ~ @ mass_benchmark, das das Szenario nur normal ausführt. Die Methoden before_hook und after_hook replizieren die Hooks Before ('~ @ mass_benchmark') und After ('~ @ mass_benchmark') (die eigentlich nur dieselbe Methode aufrufen).

Die Variable $ seconds_taken wird um den spezifischen Bereich gesetzt, für den ich das Timing habe. Ich plane nicht den gesamten Test, sondern nur einen kritischen Teil davon. Der Rest des Tests kommt zu dem Punkt usw., der nicht Teil des zeitgesteuerten Abschnitts sein soll, daher kann ich den zeitgesteuerten Abschnitt nicht einfach außerhalb dieses Abschnitts verschieben.

Das Problem mag bei etwas liegen, das ich mit diesen Methoden mache, aber soweit ich das beurteilen kann, funktioniert alles normal (wie durch gut platzierte Puts-Anweisungen angezeigt). Irgendwelche Ideen werden geschätzt!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage