1

受け入れテストに奇妙な問題があります。capybaraはブラウザの最初のシナリオのみを表示し、他のすべてはバックエンドで実行され、何らかの理由で空白のページが表示されます(ただし、正常に成功して失敗しました)。私の設定は次のとおりです。

require 'capybara'

Capybara.register_driver :selenium_chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

Capybara.current_driver = :selenium_chrome
Capybara.javascript_driver = :selenium_chrome
Capybara.run_server = true
Capybara.server_port = 7000
Capybara.app_host = "http://localhost:#{Capybara.server_port}"

tests

feature 'f1' do

  background do
    @user = create(:user)
    visit "/"
    fill_in 'Email', :with => @user.email
    fill_in 'Password', :with => 'password'
    click_button 'Sign In'
  end

  scenario "sc1" do
    click_link '1'
    click_link '2'
    click_link '3'
    page.should have_content('120')
  end

  scenario "sc2" do
    click_link '4'
    click_link '5'
    click_link '6'
    page.should have_content('110')
  end

end

gemfile

group :test do
  gem 'rspec', '~> 2.8.0'
  gem 'rspec-rails', '~> 2.8.0'

  gem 'shoulda', '~> 2.11.3'
  gem 'shoulda-matchers'

  gem 'capybara', '~> 1.1.2'
  gem 'nokogiri', '~> 1.5.2'
  gem 'database_cleaner'
end

したがってsc1、ブラウザでのみ実行されていることを確認できます。sc2他のすべてはバックグラウンドで実行されているだけで、Chromeの空白のページが表示されます。助言がありますか?

4

1 に答える 1

1

誰かが同じ問題に遭遇する場合:

RSpec.configure do |config|
  config.before do
    Capybara.current_driver = :selenium_chrome
    Capybara.javascript_driver = :selenium_chrome
    Capybara.run_server = true
    Capybara.server_port = 7000
    Capybara.app_host = "http://localhost:#{Capybara.server_port}"
  end
end

これをブロックに配置するとbefore、トリックが実行されます

于 2012-07-25T17:03:02.193 に答える