我将rails 2.3应用程序升级到rails 3.2。我试图让我们的黄瓜覆盖率恢复,我遇到了一个奇怪的问题。一切都只是空白。我尝试使用webkit和chrome运行它(不是selenium,它还没有使用我当前版本的firefox)
# config/environments/test.rb
config.cache_classes = true
config.serve_static_assets = true
config.static_cache_control = "public, max-age=3600"
config.whiny_nils = true
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
config.action_dispatch.show_exceptions = true
config.action_controller.allow_forgery_protection = false
config.action_mailer.delivery_method = :test
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :protocol => "https"}
config.active_support.deprecation = :stderr
没有什么超级奇怪的。我的黄瓜env文件都是标准的,有一些单独的支持文件,用于配置factory_girl,database_cleaner和capybara。 Capybara配置:
require 'capybara/rails'
require 'capybara/webkit'
if ENV["CAPYBARA_JAVASCRIPT_DRIVER"] == "chrome"
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
end
Capybara.javascript_driver = (ENV["CAPYBARA_JAVASCRIPT_DRIVER"] ||
:webkit).to_sym
再一次,没什么了不起的。所以我有一个简单的黄瓜功能。
Given(/^I am logged in"$/) do
visit "/login"
end
浏览器打开,它向http://127.0.0.1:45393/login
发出请求,但没有任何反应。否#34;未找到"页面,没有例外提出或显示。它只是呈现一个白页。空标签。
如果我在访问行之后放入调试器并检查page.html
,则会返回""
我一直拖着测试日志。并且它显示数据库清理程序在运行示例之前截断了DB,然后ActiveRecord正在实例化fixture。它显示:
Started GET "/" for 127.0.0.1 at 2014-07-11 15:04:53 -0400
但它并不提供任何资产或在后端提供任何内容。
我已尝试添加到Capybara的其他配置选项,例如app_host,run_server和server_port,但这并没有改变行为。
知道我在这里失踪的是什么吗?