我正在尝试使用 Sauce Connect 设置 Capybara 以对我编写的 gem 进行一些自动化测试。我正在使用Combustion在 localhost:9000 启动服务器以在浏览器中进行测试。
我的spec_helper.rb
长相是这样的:
require 'rubygems'
require 'bundler'
Bundler.require :development
require 'rspec/rails'
require 'capybara/rails'
require 'capybara/rspec'
require 'sauce/capybara'
require 'sauce/parallel'
Combustion.initialize!
# Engine config initializer
require 'setup_credentials.rb'
RSpec.configure do |config|
#config.use_transactional_fixtures = true
end
Capybara.default_driver = :sauce
Capybara.server_port = 9000
BROWSERS = [
["Mac", "Firefox", "17"]
]
index = ENV["TEST_ENV_NUMBER"] != "" ? (ENV["TEST_ENV_NUMBER"].to_i - 1) : 0
platform = BROWSERS[index]
Sauce.config do |config|
config[:os] = platform[0]
config[:browser] = platform[1]
config[:version] = platform[2]
end
在我正在运行的另一个终端中:
java -jar Sauce-Connect.jar MY-USERNAME MY-API-KEY -p localhost:9000
我的规范名称miso_spec.rb
如下所示:
require "spec_helper"
describe "File upload", :sauce => true do
it "should go through locally" do
visit "http://localhost:9000"
fill_in 'search', :with => "platform"
click_button "searchButton"
page.should have_content "Screencasts"
end
end
我通过执行以下命令来运行它:
rspec -P "spec/features/miso_spec.rb"
启动此命令几秒钟后,我的服务器被下面的 GET 请求淹没并无限期地继续。
Started GET "/__identify__" for 127.0.0.1 at 2013-05-31 13:51:05 +0200
** [Raven] User excluded error: #<ActionController::RoutingError: No route matches [GET] "/__identify__">
ActionController::RoutingError (No route matches [GET] "/__identify__"):
当我在 Saucelabs.com 上查看视频时,我可以看到浏览器永远不会进入http://localhost:9000
. 然而,奇怪的是,当我控制测试会话时(您可以在浏览器测试运行时单击 Sauce Labs 上的视频来控制),手动导航到该地址会打开本地托管页面.
我相当肯定我已经排除了燃烧是问题的根源。在此端口上启动标准 Rails 服务器仍然会出现上面发布的路由错误。我不确定如何进行。谢谢。