2013-03-07 2 views
0

После запуска rspec-файла с терминала вы можете увидеть продолжительность выполнения всех тестов с вывода терминала. Похоже, что-то вроде этого:Получить продолжительность выполнения файла rspec

3 examples, 0 failures, 3 passed 
Finished in 65.007918085 seconds 

Есть ли способ, чтобы сохранить эту длительность в переменной (например - для отправки тестового времени статистики в базу данных)?

ответ

1

Я считаю, что вы можете использовать специальный форматтер rspec для доступа к этим данным и управлять выходом вывода. Если вам повезет, кто-то другой, возможно, уже написал тот, который вы можете повторно использовать. В качестве альтернативы вам, вероятно, потребуется только подклассом, который вы уже используете, и расширьте метод start_dump, чтобы сделать что-то интересное с данными о длительности, а затем вызовите super.

Для вызова пользовательского форматирования, вы просто делаете

rspec -f MyFormatter name_of_test_spec.rb 

Больше информации о Rspec пользовательских форматтеров:

https://www.relishapp.com/rspec/rspec-core/docs/formatters/custom-formatters

http://rubydoc.info/gems/rspec-core/2.6.4/RSpec/Core/Formatters/BaseFormatter

1

Проведите вывод в оболочку и используйте регулярное выражение для извлечения продолжительности.

+0

Да, это мой резервный вариант. Но если вывод терминала содержит эти данные, он должен быть в некоторой системной переменной в коде rspec – ShockwaveNN

Смежные вопросы