Как совместить автотест и spork в тестировании Rails? - PullRequest
11 голосов
/ 25 ноября 2010

Автотест увеличивает скорость выполнения тестов, запуская только измененные тесты.

Но я хочу продвинуть его еще дальше, используя spork для предварительной загрузки среды Rails, чтобы получить еще более быстрый отклик.

Возможно ли это?https://github.com/grosser/autotest

Spork: http://github.com/timcharper/spork

Ответы [ 3 ]

13 голосов
/ 02 марта 2011

ARTICLE1 Микбе вас охватил! Я бы попытался перефразировать это здесь, но пост делает такую ​​большую работу.

Если вы оказались в OSX, есть также инструкции по использованию Growl для уведомлений в трее.

ARTICLE2 В Ruby Inside также есть пошаговое руководство для Rails 3 и RSpec 2.

4 голосов
/ 25 июня 2012

Если вы используете Ruby 1.9 и хотите использовать spork и автотест вместе с Test :: Unit (фактически MiniTest), попробуйте это:

Gemfile:

group :test do
  # Newer version of test::unit:
  gem 'minitest'

  # spork preloads a rails instance which is forked every time the tests are
  # run, removing test startup time.
  gem 'spork'

  # Run 'spork minitest' to start drb server (test server). Use 'testdrb' to
  # run individual tests via spork.
  gem 'spork-minitest'

  # Run 'bundle exec autotest' to rerun relevant tests whenever a file/test is
  # changed. '.autotest' makes sure the tests are run via test server (spork).
  gem 'autotest-standalone'

  # -pure gives us autotest without ZenTest gem.
  gem 'autotest-rails-pure'
end

.autotest:

class Autotest
  # run tests over drb server (spork)
  def make_test_cmd files_to_test
    if files_to_test.empty?
      "" # no tests to run
    else
      "testdrb #{files_to_test.keys.join(' ')}"
    end
  end
end

(Примечание: в инструкциях указано bin/testdrb, но я изменил его на testdrb, чтобы он работал для меня.)

В терминале:

spork minitest --bootstrap

Отредактируйте test/test_helper.rb и следуйте инструкциям.

После того, как вышеописанная настройка будет выполнена один раз, вы можете запустить тестовый сервер:

spork minitest

Наконец запустить автоматический тест в другомтерминал:

bundle exec autotest

И (надеюсь) наслаждайтесь действительно быстрым автотестированием с MiniTest.

0 голосов
/ 31 января 2011

Я еще не пробовал, но в главе 3 RailsTutorial *1002* есть раздел, в котором говорится о некоторых "хакерах" для настройки spork.В настоящее время учебник говорит:

... на момент написания этой статьи Spork официально не поддерживает Rails 3

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

- drb

в вашем файле .rspec.

...