Chamando Block várias vezes em Cucumber Around Hook (Ruby)
Eu estou tentando executar um cenário várias (30) vezes para obter uma boa amostra estatística. No entanto, o bloco só está executando uma vez; cada tempo subseqüente resulta no cenário sendo chamado e não em execução (embora seja dito que o cenário foi concluído com êxito em cerca de 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>
A tag @mass_benchmark executa este bloco, ao contrário de ~ @ mass_benchmark, que apenas executa o cenário normalmente. Os métodos before_hook e after_hook replicam os ganchos Before ('~ @ mass_benchmark') e After ('~ @ mass_benchmark') (que na verdade apenas chamam o mesmo método).
A variável $ seconds_taken é definida em torno da área específica para a qual estou sincronizando. Eu não estou cronometrando todo o teste lá, apenas uma parte crítica dele; o restante do teste está chegando a esse ponto, etc., que não deve fazer parte da parte cronometrada, portanto, não posso simplesmente mover a parte da temporização para fora disso.
O problema pode estar em algo que estou fazendo nesses métodos, mas, até onde sei, tudo funciona normalmente (como indicado por instruções colocadas bem colocadas). Qualquer ideia é apreciada!