Spork не ускоряет мои тесты - PullRequest
4 голосов
/ 08 июля 2011

Я использую RSpec для своих тестов на Rails 3 и пытаюсь использовать Spork.

Я следовал нескольким учебникам, и Spork, похоже, работает без ошибок, но мои тесты все еще занимают столько же времени, чтобызапустить (43 секунды) с включенным и выключенным Spork.

Как мне выяснить, что происходит?

Gemfile

gem 'spork', '>=0.9.0.rc9'

spec_helper.rb

require 'rubygems'
require 'spork'
require 'factory_girl'
require 'cover_me'

Spork.prefork do
  # Loading more in this block will cause your tests to run faster. However,
  # if you change any configuration or code from libraries loaded here, you'll
  # need to restart spork for it take effect.
  # This file is copied to spec/ when you run 'rails generate rspec:install'
  ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'

  # Force find of factory girl definitions. Tests started failing without this, and the factories could not be found
  Factory.find_definitions

  # Requires supporting ruby files with custom matchers and macros, etc,
  # in spec/support/ and its subdirectories.
  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

  RSpec.configure do |config|
    # == Mock Framework
    #
    # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
    #
    # config.mock_with :mocha
    # config.mock_with :flexmock
    # config.mock_with :rr
    config.mock_with :rspec

    # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
    config.fixture_path = "#{::Rails.root}/spec/fixtures"

    # If you're not using ActiveRecord, or you'd prefer not to run each of your
    # examples within a transaction, remove the following line or assign false
    # instead of true.
    config.use_transactional_fixtures = true

    # Needed for Spork
    ActiveSupport::Dependencies.clear
  end
end

Spork.each_run do
  # This code will be run each time you run your specs.

end

Когда я запускаю → spork для запуска сервера, все выглядит нормально:

→ spork Использование среды RSpec Preloading Rails Загрузка блока Spork.prefork ... Spork готов и прослушивает 8989!

У меня также есть --drb в файле .rspec

1 Ответ

4 голосов
/ 14 июля 2011

Это зависит от того, как вы измеряете время выполнения.Если вы включаете время, необходимое для раскрутки рельсов, которое должно быть быстрее, но фактическое время выполнения теста не изменится.

Spork кэширует среду рельсов, что ускоряет время раскрутки, но не ускоряет фактическое время выполнения.

...