Я пытаюсь запустить функцию поиска.Я добавил необходимые строки, которые рекомендует документация ThinkingSphinx
require 'cucumber/thinking_sphinx/external_world'
Cucumber::ThinkingSphinx::ExternalWorld.new
, а также отключил использование транзакций и вместо этого использовал усечение DatabaseCleaners.У меня настроена функция, поэтому после добавления пользователя я обновляю индекс для Sphinx и затем выполняю поиск.
Scenario: Add a client to a project
Given I have a project named "ProjectXYZ"
And I have a client named "Tom Client" with an email address "tom@email.com"
And the Sphinx indexes are updated
And if I search for "Tom" which is a "Client", I have 1 result
Поиск всегда возвращает 0 результатов, даже если пользователь там присутствует.Если я проверю счетчик для User.find_by_first_name ("Tom"). Count.should eq (1), то это будет успешно.
Вот мои шаги:
Обновление индекса
Given 'the Sphinx indexes are updated' do
# Update all indexes
ThinkingSphinx::Test.index
sleep(1.0) # Wait for Sphinx to catch up
end
Поиск и проверка результатов
Given /^if I search for "([^"]*)" which is a "([^"]*)", I have (\d+) results?$/ do |query,model,count|
Rails.const_get(model).search_count(query).should == count.to_i
end
Я использую Rails 3.0.3, Cucumber 0.9.4 и Cucumber-Rails 0.3.2