Я работаю над проектом Rails с тестами Rspec, выполнение которых занимает очень много времени.Чтобы выяснить, какие из них занимают так много времени, я решил создать собственный форматер для RSpec и распечатать его для каждого примера:
require 'rspec/core/formatters/base_formatter'
class TimestampFormatter < RSpec::Core::Formatters::BaseFormatter
def initialize(output)
super(output)
@last_start = 0
end
def example_started(example)
super(example)
output.print "Example started: " << example.description
@last_start = Time.new
end
def example_passed(example)
super(example)
output.print "Example finished"
now = Time.new
time_diff = now - @last_start
hours,minutes,seconds,frac = Date.day_fraction_to_time(time_diff)
output.print "Time elapsed: #{hours} hours, #{minutes} minutes and #{seconds} seconds"
end
end
И в моем spec_helper.rb япробовал следующее:
RSpec.configure do |config|
config.formatter = :timestamp
end
Но я получаю следующую ошибку при запуске rspec:
configuration.rb:217:in `formatter=': Formatter 'timestamp' unknown - maybe you meant 'documentation' or 'progress'?. (ArgumentError)
Как сделать мой пользовательский форматер доступным как символ?