5

セレンを使用して実行される統合テストがあります。それぞれの前に、いくつかのオブジェクトを作成し、solr でインデックスを作成しました。subnsspot solr テスト ログでアクティビティを確認できます。そして、私のテストでは、太陽黒点の solr サーバーが実行されていないため、検索を実行するとエラーが発生します。それは RAILS_ENV = test で実行しているためです。

これが私の前のそれぞれです:

before :each do
 Sunspot.remove_all!(Residential)
 Sunspot.commit

  @prop1 = FactoryGirl.create(:residential, { subdivision: "Steiner Ranch", street_name: "propone" })
  @prop1.index!
  @prop2 = FactoryGirl.create(:residential, { subdivision: "Jester Estates", street_name: "proptwo" })
  @prop2.index!
  @prop3 = FactoryGirl.create(:residential, { subdivision: "Cypress Ranch", street_name: "propthree" })
  @prop3.index!
end

そして、ここに私のテストがあります:

it "single word", :js => true do
  visit '/'
  fill_in 'subdivision', :with => 'cypress'
  page.should_not have_content('propone')
  page.should_not have_content('proptwo')
  page.should have_content('propthree')
end

検索がテスト環境ではなく開発環境で実行されている理由は何ですか? spec_helper の最初の行として ENV["RAILS_ENV"] ||= 'test' があります。

4

1 に答える 1

9

これと同じ問題がありました。実際に実行していたRailsアプリは、構成ファイル(パッセンジャーを使用しているため、Apache構成ファイル)で ENV["RAILS_ENV"] = 'development' を指定したことがわかりました。

これが当てはまる場合は、交換できます

ENV["RAILS_ENV"] ||= 'test' 

ENV["RAILS_ENV"] = 'test'

あなたのspec_helperで。

それ以来やった

  1. 本番マシンにはRSpecがなく、
  2. 本番環境ではテストを実行しません。
于 2012-10-06T17:59:31.683 に答える