Как объединить автотест и spork в Rails-тестировании?
Autotest увеличивает скорость, с которой тесты запускаются только при выполнении измененных тестов.
Но я хочу еще больше подтолкнуть его, используя spork для предварительной загрузки среды Rails, чтобы получить еще более быструю обратную связь.
Возможно ли это?
Автотест: https://github.com/grosser/autotest
Spork: http://github.com/timcharper/spork
Ответы
Ответ 1
ARTICLE1 mikbe вы охватили! Я бы попытался перефразировать его здесь, но сообщение делает такой замечательный работа.
Если вы находитесь на OSX, есть также инструкции по использованию Growl для уведомлений в трее.
ARTICLE2 В Ruby Inside также есть прохождение для Rails 3 и RSpec 2.
Ответ 2
Если вы используете Ruby 1.9 и хотите использовать spork и autotest вместе с 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.
Ответ 3
Я еще не пробовал, но есть раздел в главе 3 RailsTutorial, в котором говорится о некоторых "хаках" для создания spork, В учебнике в настоящее время говорится:
... на момент написания Spork официально не поддерживает Rails 3
Далее рассказывается, как настроить автотест. Одно дело знать, что вам понадобится
- DRB
в вашем файле .rspec.