1

これは私が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が生成する標準的なものであり、次のようにすべてをsporkpreforkブロック内に配置しました。

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

私はそれを間違っていますか?それとも、スポークはボークされていますか?

4

1 に答える 1

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

更新:ここ のguard-rspecとここのrspec-coreで報告されまし

于 2011-10-18T09:09:38.393 に答える