このステートメントに問題があることがわかります。
データはロードされ、通常のキュウリ テスト中にトランザクションでロールバックされるため、thinking_sphinx がインデックスを作成する方法はありません。
thinking_sphinx で結果のインデックスを作成するのは高速ではないかもしれませんが、トランザクション内では確実に可能です。これは単一の統合テストであり、(多くの) 単体テストごとに実行されるわけではないため、速度が低下します。
そのため、トランザクション中にインデックスの再作成をトリガーする方法を理解する必要があります。
# somewhere in /features/support:
before('@reindexing') do
require 'Rake'
class MyModel
after_save :force_reindex!
def force_reindex!
# in case multiple runs of this block cause the hook
# to get added multiple times, let's check to make sure
# we haven't already reindexed for this save
return if @__reindexed
Rake["thinking_sphinx:rebuild"].execute
@__reindexed = true
end
end
end
after('@reindexing') do
class MyModel
def force_reindex!
# do nothing; the hook still gets called, but that's ok
end
end
end
で/features/integration.feature
(または何でも)、あなたは持っているでしょう
@reindexing
Feature: The whole shebang, altogether
Scenario: ...