2011-10-18 27 views
1

之間不進行重置這是一個複製粘貼+的issue我在GitHub上創建的,但我問過這裏萬一有人知道如何解決它叉勺定時器運行


使用叉勺0.9.0 .rc9,我注意到顯示規格需要運行多長時間的計時器不是在運行之間重置自身,而是輸出自spork服務器啓動以來積累的總時間。

重現步驟:

  1. 開始從叉勺控制檯在另一個窗口中運行rspec的命令叉勺
  2. 。 --drb
  3. 觀察規格以X秒運行和控制檯輸出驗證此
  4. 等待60秒,修改控制器的規格,並重復步驟2
  5. 觀察規格需要大約Y秒運行,但控制檯輸出宣稱他們花了(X + Y + 60)秒。
  6. 等待10分鐘後,重複步驟2
  7. 觀察規格沿Z秒運行,但控制檯輸出把該圖在(X + Y + Z + 600)秒

我spec_helper只是標準一個rspec-rails會爲您生成,我已將所有內容放入spork prefork塊中,如下所示:

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 

我做錯了嗎?或者是spork borked?

回答

4

這有一個臨時的解決方法,這是一個已知的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: 據報道,在看守的RSpec here和rspec的核心here