11

自動テストは、変更されたテストのみを実行することにより、テストの実行速度を向上させます。

しかし、spork を使用して Rails 環境をプリロードすることで、さらに迅速にフィードバックを取得できるようにしたいと考えています。

これは可能ですか?

自動テスト: https://github.com/grosser/autotest

スポーク: http://github.com/timcharper/spork

4

3 に答える 3

13

ARTICLE1 mikbeがカバーしてくれました! 私はここでそれを言い換えようとしますが、投稿はとても素晴らしい仕事をします.

たまたま OSX を使用している場合は、Growl をトレイ通知に使用する手順もあります。

ARTICLE2 Ruby Inside には、 Rails 3 と RSpec 2 のウォークスルーもあります。

于 2011-03-02T03:59:23.670 に答える
4

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 で非常に高速な自動テストを楽しんでください。

于 2012-06-25T13:25:39.080 に答える
0

私はまだ試していませんが、RailsTutorial の第 3 章に、 spork をセットアップするための「ハック」について説明しているセクションがあります。チュートリアルには現在次のように書かれています。

... この記事の執筆時点では、Spork は公式には Rails 3 をサポートしていません

この章では、autotest を使用してセットアップする方法について説明します。知っておくべきことの1つは、次のことが必要になるということです

--drb

.rspec ファイルで。

于 2011-01-31T03:07:32.493 に答える