0

RSpec、Capybara、Selenium をセットアップして、従来の localhost:80 で実行されている PHP アプリケーションをテストしようとしています。スイートを実行するたびに、Selenium が失敗し、不正な形式の URI について不平を言います。

これが私のspec_helper.rbです。

require 'bundler/setup'
require 'rspec'
require 'capybara/rspec'

Capybara.server_port = 80
Capybara.app_host = 'http://localhost'
Capybara.run_server = false
Capybara.default_driver = :selenium

そして、ここに私の唯一の仕様があります:

require File.dirname(__FILE__) + '/../spec_helper'

describe "visting the website", :type => :request do

  it "should display an html page" do  
      visit ( '/' )
      page.should have_selector( 'html' )
  end  

end 

しかし、それは保釈されます。私は何が欠けていますか?

Failures:

  1) visting the website should display an html page
     Failure/Error: visit ( '/' )
     Selenium::WebDriver::Error::UnknownError:
       Component returned failure code: 0x804b000a (NS_ERROR_MALFORMED_URI) [nsIIOService.newURI]
     # ./spec/requests/sign_in_spec.rb:6:in `block (2 levels) in <top (required)>'

私の URI は不正な形式ではないように見えます... visit「http://localhost」を渡せば機能しますが、それは理想的ではありません。

これが私のGemfileです。

gem 'rspec'
gem 'capybara', :git => 'https://github.com/jnicklas/capybara.git'
gem 'launchy'
gem 'ruby-debug19'

助けてくれてありがとう。

4

2 に答える 2

1

@andrykonchinは正しかった-安定した状態に戻すことはうまくいった

于 2012-08-15T18:36:19.697 に答える
0

インストールされていない場合は、バンドラーをインストールする必要があります

gem install bundler

次に、ルートディレクトリにgemfileというファイルを作成する必要があります(私の簡単な例では、capybaraのみを使用しており、rspecは使用していません)。

source "http://rubygems.org"
gem "capybara" , "1.1.3"

次のように基本的なrubyファイルを作成します

require 'bundler/setup'
require 'capybara/dsl'

Capybara.server_port = 80
Capybara.app_host = 'http://google.com'
Capybara.run_server = false
Capybara.default_driver = :selenium

class Browser
  include Capybara::DSL
end

w = Browser.new

w.visit("/")

コマンドを使用する

bundle install

これで、安定バージョンのCapybaraを使用します。

バンドラーの詳細については、http://gembundler.com/を参照してください。

于 2012-11-21T08:36:48.680 に答える