Как заставить тест Guard/rspec работать быстрее

Я запускаю следующие драгоценные камни в приложении rails 3.1 поверх ruby ​​1.9.2:

group :test, :development do
gem 'turn', '<0.8.3'
gem 'rspec-rails'
gem 'capybara'
gem 'guard-rspec'
gem 'minitest'
gem 'ruby_gntp'
gem "win32console", "~> 1.3.0"
end

Я только инициализировал защиту и rspec, запустив

rails g integration_test MyApp

команда.

Итак, у меня есть только один образец теста, созданный командой. это выглядит так:

 require 'spec_helper'

describe "Tasks" do
  describe "GET /tasks" do
    it "works! (now write some real specs)" do
      # Run the generator again with the --webrat flag if you want to use webrat methods/matchers
      get tasks_index_path
      response.status.should be(200)
    end
  end
end

по какой-то причине, когда я запускаю охрану, защита и rspec занимают от 3,5 до 5 секунд, просто провалите это на небольшом тесте. На сайтах, которые я видел, их машина выполняет этот точный тест примерно за 0,0159 секунды на Mac. Что я могу сделать, чтобы повысить производительность этих тестов?

Я запускаю это на машине с Windows 7.

Кто-нибудь имел дело с этой ситуацией?


person E.E.33    schedule 20.01.2012    source источник
comment
Вы проверили драгоценный камень под названием «spork»?   -  person jstim    schedule 21.01.2012
comment
пробую сейчас. Это боль. Я наконец-то побежал, но теперь мои уведомления о рычании перестали работать.   -  person E.E.33    schedule 22.01.2012


Ответы (1)


Однословный ответ на этот вопрос, как предложил @jstim выше, — это Spork.

Как минимум, вы захотите добавить в свой блок :test, :development следующее:

gem 'spork', '~> 1.0rc'
gem 'guard-spork'

Вот ссылка на Spork README.

Что он делает, так это устанавливает блок предварительной загрузки, в который вы можете поместить столько вашего приложения, сколько хотите. Преимущество, конечно же, в более быстрых тестах из-за всех этих вещей, которые не нужно запускать каждый раз. Недостатком является то, что если вы внесете изменения в предварительно загруженный материал, он не будет протестирован. Вам необходимо перезапустить Spork после таких изменений.

person Day Davis Waterbury    schedule 10.06.2012