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 的文件(对于我的简单示例,我只使用水豚而不使用 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 回答