2012-08-13 102 views
0

我試圖設置RSpec,Capybara & Selenium來測試運行在傳統localhost:80上的PHP應用程序。每當我運行該套件時,Selenium都會失敗並抱怨格式不正確的URI。水豚/硒 - NS_ERROR_MALFORMED_URI爲http:// localhost上的應用程序

這是我的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' 

感謝您的幫助。

+1

請檢查水豚的穩定版本的命令

bundle install 

。我有1.1.2,我無法重現這個錯誤。在我的版本水豚應用默認值(請參閱url方法https://github.com/jnicklas/capybara/blob/1.1_stable/lib/capybara/server.rb#L38) – andrykonchin 2012-08-14 10:25:28

+0

我使用1.1.2,我是有這個相同的問題。 – 2012-08-16 16:40:44

+1

唉,在我的情況下,我們使用「訪問」註銷「'沒有斜槓。當我把斜線插入時,例如'訪問「/註銷」',我們很好。 – 2012-08-16 18:04:57

回答

1

@andrykonchin是正確的 - 切換回穩定工作

0

您需要安裝捆綁如果不安裝

gem install bundler 

然後,你需要創建一個名爲Gemfile中的根目錄文件(對於我的簡單的例子,我只使用水豚並沒有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("/") 

使用現在,你將使用水豚

的穩定版本有關打捆看更多信息在http://gembundler.com/