我使用sunspot-rails進行搜索。這些是Rspec的樣子:連接在Rspec中拒絕Solr
describe "GET search" do
before(:all) do
system("rake", "sunspot:solr:start")
end
after(:all) do
system("rake", "sunspot:solr:stop")
end
it "should do some search" do
Text.search do
...
end
end
end
但它不起作用。我得到了一個錯誤:
Errno::ECONNREFUSED:
Connection refused - connect(2)
但是,如果我的手在命令行中鍵入rake sunspot:solr:start RAILS_ENV=test
,然後運行規範,它傳遞。
怎麼了?是否rake sunspot:solr:start RAILS_ENV=test
等效於system("rake", "sunspot:solr:start")
處於測試模式?
(我試過`系統(「耙」,「黑子:Solr的:開始RAILS_EVN =測試」)一樣。)
謝謝。順便說一句,我怎麼知道solr是否在我的規範中運行?我想要一個更正確的自定義異常,而不是'連接被拒絕' –
我應該認爲'Errno :: ECONNREFUSED'很具指示性。事實上,你可以用它來輪詢可用性。只是在編輯中黑掉了。 –
偉大的解決方案。對我來說就像做夢一樣。 – nfriend21