自動テストは、変更されたテストのみを実行することにより、テストの実行速度を向上させます。
しかし、spork を使用して Rails 環境をプリロードすることで、さらに迅速にフィードバックを取得できるようにしたいと考えています。
これは可能ですか?
自動テストは、変更されたテストのみを実行することにより、テストの実行速度を向上させます。
しかし、spork を使用して Rails 環境をプリロードすることで、さらに迅速にフィードバックを取得できるようにしたいと考えています。
これは可能ですか?
ARTICLE1 mikbeがカバーしてくれました! 私はここでそれを言い換えようとしますが、投稿はとても素晴らしい仕事をします.
たまたま OSX を使用している場合は、Growl をトレイ通知に使用する手順もあります。
ARTICLE2 Ruby Inside には、 Rails 3 と RSpec 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
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 で非常に高速な自動テストを楽しんでください。
私はまだ試していませんが、RailsTutorial の第 3 章に、 spork をセットアップするための「ハック」について説明しているセクションがあります。チュートリアルには現在次のように書かれています。
... この記事の執筆時点では、Spork は公式には Rails 3 をサポートしていません
この章では、autotest を使用してセットアップする方法について説明します。知っておくべきことの1つは、次のことが必要になるということです
--drb
.rspec ファイルで。