Sunspot and RSpec fail. The commit doesn't see

2019-05-03 20:24发布

I've got a few tests running with RSpec for a Rails site, but despite following the instructions things aren't quite behaving themselves.

I create an article via a Factory, run Sunspot.commit and then check the results. I always seem to draw a blank though. When I test it manually via the console or through the website it all works find though.

Any ideas? How can I output the sunspot logs to see what's going on?

My Gemfile has the following, and I'm running Rails 3.1.1

gem 'sunspot', '1.2.1'
gem 'sunspot_rails'
gem 'sunspot_test'

Many thanks, Graeme

2条回答
霸刀☆藐视天下
2楼-- · 2019-05-03 20:44

It was my fault for not reading the manual properly.

https://github.com/collectiveidea/sunspot_test/issues/9

It's necessary to add a magic bit to the description to make sure that Solr is started.

describe "my nice test", :search => true do
  thing = Factory.create(:thing)
  Sunspot.commit
  # do my search and test
  # now it works!
end

It's the :search => true that's important.

查看更多
狗以群分
3楼-- · 2019-05-03 20:50

Just to add a little something to the response above; if using FactoryGirl:

FactoryGirl.define do
    after(:create) { Sunspot.commit } 
...
end

then you won't have to add the commit call on each test file...

查看更多
登录 后发表回答