2010-12-07 9 views
0

검색이 이루어지는 곳에서 기능을 실행하려고합니다. 나는 ThinkingSphinx 문서는오이 기능으로 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 "[email protected]" 
    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) 성공합니다. ,, 오이 0.9.4

업데이트 색인

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 

내가 레일 3.0.3을 사용하고 있습니다 :

여기 내 단계입니다 및 오이 레일 0.3.2

답변

1

아무 것도 보이지 않는 것 같습니다 ... 이미 없으시다면 공식 문서 대신 my blog post을 사용 하시길 권장합니다 (후자는 업데이트해야 함).

기타 : 개발 설정에서 스핑크스로 a different port을 사용하여 테스트/오이 환경을 유지합니까? 스핑크스가 개발팀에서 돌아가고 있지 않다면, 그렇게해서는 안됩니다.

+0

스핑크스가 테스트 데이터베이스가 아닌 개발 데이터베이스를 검색하고 있음이 밝혀졌습니다. 도움을 주셔서 감사합니다, 이것은 나를 미치게했습니다. – ryanbillingsley

+0

감사합니다. 어쩌면 정상적인 문제인 것 같아서 문서화해야합니다 :) – fuzzyalej

+1

해결 방법을 알려주시겠습니까? – Edmund

관련 문제