Wielokrotne wywoływanie bloku w Cucumber Around Hook (Ruby)

Próbuję uruchomić scenariusz kilka (30) razy, aby uzyskać ładną próbkę statystyczną. Jednak blok jest wykonywany tylko raz; każdy kolejny czas powoduje wywołanie scenariusza i nie wykonanie go (chociaż mówi, że scenariusz zakończył się pomyślnie z czasem około 5 ms).

<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>

Tag @mass_benchmark wykonuje ten blok, w przeciwieństwie do ~ @ mass_benchmark, który normalnie wykonuje scenariusz. Metody before_hook i after_hook replikują haki Before ('~ @ mass_benchmark') i After ('~ @ mass_benchmark') (które faktycznie nazywają tę samą metodę).

Zmienna $ seconds_taken jest ustawiona wokół określonego obszaru, dla którego mam czas. Nie mierzę czasu całego testu, tylko jego krytyczną część; pozostała część testu dociera do tego punktu, itd., który nie ma być częścią taktowanej części, więc nie mogę po prostu przesunąć części czasu poza tym.

Problem może dotyczyć czegoś, co robię w tych metodach, ale o ile wiem, wszystko działa normalnie (jak wskazują dobrze umieszczone wypowiedzi). Wszelkie pomysły są mile widziane!

questionAnswers(2)

yourAnswerToTheQuestion