3

検索機能にSunspotとSolrを使用するRailsアプリがあります。私は現在、(Rails独自のテストスイートを使用して)機能テストを作成して、パラメーターに検索語を指定して検索コントローラーを呼び出すと、正しいレコードが返されることを確認しています。

現在私は持っています:

test "should_return_some_records" do
  get :index, :term => "search term here"
  assert_response :success
  assert more stuff ...
end

rake test:functionalsを実行すると、Sunspotが検索ブロックから空の結果配列を返したため、このテストは「ActionView :: Template::Error」で爆撃します。

rake sunspot:reindexsearchs_controller_testのセットアップメソッド内から実行すると、テストに合格します。ただし、これは、そのファイル内のすべてのテストに対してアクションも実行されることを意味し、処理が非常に遅くなります。

誰かが、すべてのテストの前にそうする必要なしに、Sunspotに私のテスト環境のフィクスチャにインデックスを付けるための最良の方法についていくつかのポインタを教えてもらえますか?

よろしくお願いします。

4

1 に答える 1

5

机の上で頭をぶつけた後、searches_controller_test.rbで次のような問題を解決しました(Itemは検索しているモデルです)。

setup do
  Item.reindex
end

これが物事を行うための最良の方法であるかどうかはわかりませんが、おそらくそれは他の誰かを助けるでしょう。

于 2012-02-16T10:38:48.870 に答える