Поиск с ThinkingSphinx в функции огурца не дает результатов - PullRequest
0 голосов
/ 07 декабря 2010

Я пытаюсь запустить функцию поиска.Я добавил необходимые строки, которые рекомендует документация 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

1 Ответ

1 голос
/ 08 декабря 2010

Пока что ничего не кажется неуместным ... если вы еще этого не сделали, я бы порекомендовал использовать мой пост в блоге вместо официальных документов в качестве справочных (последние требуют обновления). 1003 *

Также: есть ли у вас среда test / cucumber, использующая другой порт для Sphinx в ваших настройках разработки? Хотя, если Sphinx не работает в dev, это не должно мешать.

...