Вызов блока несколько раз в Cucumber Around Hook (Ruby)

Я пытаюсь запустить сценарий несколько (30) раз, чтобы получить хорошую статистическую выборку. Однако блок выполняется только один раз; каждое последующее время приводит к тому, что сценарий вызывается и не выполняется (хотя в нем говорится, что сценарий успешно завершился со временем около 5 мс).

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

Тег @mass_benchmark выполняет этот блок, в отличие от ~ @ mass_benchmark, который просто выполняет сценарий в обычном режиме. Методы before_hook и after_hook дублируют перехватчики Before ('~ @ mass_benchmark') и After ('~ @ mass_benchmark') (которые на самом деле просто вызывают один и тот же метод).

Переменная $ seconds_taken устанавливается вокруг конкретной области, для которой я рассчитываю время. Я не планирую весь тест там, только критическую его часть; остальная часть теста достигает этой точки и т. д., которая не должна быть частью временной части, поэтому я не могу просто переместить временную часть за пределы этого.

Проблема может заключаться в том, что я делаю в этих методах, но, насколько я могу судить, все работает нормально (на что указывают хорошо поставленные операторы put). Любые идеи приветствуются!

Ответы на вопрос(2)

Ваш ответ на вопрос