Таймер Spork не сбрасывается между запусками - PullRequest
1 голос
/ 18 октября 2011

Это копия + вставка проблемы , которую я создал на github, но я спрашиваю и здесь, если кто-то знает, как это исправить


Использование spork 0.9.0.rc9, я заметил, что таймер, который показывает, сколько времени требуется для выполнения спецификации, не сбрасывает себя между запусками, а вместо этого выводит общее время, накопленное с момента запуска spork-сервера.

Шаги для воспроизведения:

  1. запустить spork из консоли с помощью команды spork
  2. в другом окне, запустите rspec.--drb
  3. обратите внимание, что для запуска спецификации требуется X секунд, и что вывод консоли подтверждает это
  4. , подождите 60 секунд, измените спецификацию контроллера и повторите шаг 2
  5. , отметьте, чтозапуск спецификаций занимает около Y секунд, но вывод на консоль утверждает, что они заняли (X + Y + 60) секунд.
  6. подождите 10 минут, повторите шаг 2
  7. и обратите внимание, что спецификации выполняются за Z секундно вывод консоли выводит цифру в (X + Y + Z + 600) секунд

Мой spec_helper - это просто стандартный, который генерирует rspec-rails для вас, и я поместил все в prefork sporkблокировать следующим образом:

require 'rubygems'
require 'spork'

Spork.prefork do
  ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'
  require 'rspec/autorun'

  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

  RSpec.configure do |config|  
    config.fixture_path = "#{::Rails.root}/spec/fixtures"
    config.use_transactional_fixtures = true
    config.infer_base_class_for_anonymous_controllers = false
  end
end

Я делаю это неправильно?Или спорк забит?

1 Ответ

4 голосов
/ 18 октября 2011

Это временное исправление, это известная проблема rspec.

Временное исправление, которое может не работать с будущими версиями rspec, выглядит следующим образом:

Spork.each_run do
  # you are advised that this may break in future versions of rspec
  $rspec_start_time = Time.now  
end

UPDATE: об этом сообщалось в guard-rspec здесь и в rspec-core здесь .

...