Как заставить мой тест guard / rspec работать быстрее - PullRequest
0 голосов
/ 21 января 2012

Я запускаю следующие гемы в приложении 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.

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

1 Ответ

1 голос
/ 10 июня 2012

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

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

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

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

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

...