2013-08-27 42 views
0

搜索功能在開發和生產中工作正常。但是當我運行Rspec測試。結果陣列始終是空使用rspec測試時,太陽黑子搜索結果爲空

在我的搜索操作日誌,我可以看到數據已被索引並正確獲取:

Parameters: {"utf8"=>"✓", "ga_client_id"=>"", "search"=>"David"} 
SOLR Request (3.9ms) [ path=#<RSolr::Client:0x007fb7f9141f00> parameters={data:  fq=type%3AToon&sort=created_at_d+asc&q=David&fl=%2A+score&qf=name_text+author_text+toon_typetext+tags_text&defType=dismax&start=0&rows=9, method: post, params: {:wt=>:ruby}, query: wt=ruby, headers: {"Content-Type"=>"application/x-www-form-urlencoded; charset=UTF-8"}, path: select, uri: http://localhost:8981/solr/select?wt=ruby, open_timeout: , read_timeout: , retry_503: , retry_after_limit: } ] 
Toon Load (0.4ms) SELECT "toons".* FROM "toons" WHERE "toons"."id" IN (15550, 15551, 15552) AND (state in ('created','flagged')) 

在我的控制器

@search = Toon.solr_search do 
    fulltext params[:search] 
    order_by :created_at, :asc 
    paginate :page => params[:page], :per_page => 9 
    end 
    @toons = @search.results 

我的RSpec的測試:https://gist.github.com/jianbo/6360486

在測試中查看

<%= @search.inspect %> This output correctly as follow: 
    <Sunspot::Search:{:fq=>["type:Toon"], :sort=>"created_at_d asc", :q=>"papabear", :fl=>"* score", :qf=>"name_text author_text toon_type_text tags_text", :defType=>"dismax", :start=>0, :rows=>9}> 

    <%= @toons.inspect %> is empty array 

UPDATE 我剛剛發現,如果我沒有清除索引和數據庫,並且在運行兩次測試後,我能夠搜索第一次運行測試中的結果。

+0

你弄明白了嗎?我也有同樣的問題。 –

+0

你爲你的測試環境設置了sunspot.yml嗎?測試: Solr的: 主機名:本地主機端口 :8981 LOG_LEVEL:警告 路徑:/ Solr的/測試距離要鏈接的頁面 – user1883793

回答