У меня есть ориентир, как следующим образом:Run тест, но не напечатать результат
benchmark_result = Benchmark.bm do |x|
x.report { send(test_name) }
end
Когда я запускаю это, я вижу выход из двух мест:
send(test_name)
вreport
блок. Я хочу продолжить этот вывод.- Выход из блока Benchmark, то есть результирующий контрольный отчет печатается на консоль. Я не хочу, чтобы это произошло.
Я видел из here как временно скрывать вывод консоли. Но проблема в том, что я хочу, чтобы внутренний блок продолжал печатать свой вывод. Я просто не хочу видеть результаты тестов.
Вы хотите видеть результаты вызова метода, но * не * показывать результат теста? Я не уверен, почему вы что-то сравнивали, а затем выбрасывали результаты. – tadman
Я делаю «систему кэширования контрольных показателей», поэтому, когда я запрашиваю эталон для метода, мне не нужно снова запускать этот метод. Это специально для длительных методов, и я понимаю, что результаты не будут полностью точными. Люди неоднократно говорили мне об этом недавно опубликованном вопросе [здесь] (http://stackoverflow.com/questions/36961017/how-to-multiply-a-benchmark?noredirect1_comment61480374_36961017). В принципе, всякий раз, когда я запускаю тестовый пример, я сохраняю эталон, который отображается позже. –
Интересный проект, спасибо за объяснение. Я думаю, что подход AmitA, где вы можете захватить результаты и сохранить их каким-то образом для последующего использования, является лучшим. Вы могли бы поместить их в какую-то небольшую базу данных, такую как SQLite, чтобы организовать их, если необходимо. – tadman