在黄瓜功能中使用ThinkingSphinx进行搜索不会返回任何结果

时间:2010-12-07 17:14:34

标签: ruby-on-rails cucumber thinking-sphinx

我正在尝试运行搜索发生的功能。我添加了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 个答案:

答案 0 :(得分:1)

到目前为止似乎没有什么不合适......如果你还没有,我会建议使用my blog post代替官方文档作为参考(后者需要更新)。

另外:对于您的开发设置,您是否有使用a different port Sphinx的测试/黄瓜环境?虽然如果Sphinx没有在开发中运行,那么这不应该妨碍。