Вызов блока несколько раз в 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). Любые идеи приветствуются!