ruby-on-rails - Capybara javascript 驱动程序无法正常工作(env : Rspec, Spork、Capybara、Webkit)

标签 ruby-on-rails testing rspec capybara spork

这是我在网上提出的第一个问题,所以请发表评论,我会尽力更新我的问题以澄清。

我对 Web 开发相当陌生,目前正在为公司项目开发测试套件。当我尝试对涉及 javascript 的函数进行集成测试时,它运行得很好。我尝试使用 webkit(从 gi​​t 捆绑)和 selenium。 Webkit 给出了以下错误消息。

Wrote response false "Unable to load URL: http://127.0.0.1:56618/ because of error loading http://127.0.0.1:56618/: Connection closed" 
Cleaning database...done
Received "Reset" 
Started "Reset" 
Finished "Reset" 
Wrote response true "" 
  should see invalid message (FAILED - 1)
Failures:
  1) Users GET /sign_in with invalid account should see invalid message
 Failure/Error: visit root_path
 Capybara::Webkit::InvalidResponseError:
   Unable to load URL: http://127.0.0.1:56618/ because of error loading http://127.0.0.1:56618/: Connection closed

当使用 Selenium 时,FireFox 会提示:

Your Firefox profile cannot be loaded. It may be missing or inaccessible.

有人知道可能出现什么问题吗? 提前致谢!

我的 sepc_helper.rb

Spork.prefork do
  ...
  ..
  .
  RSpec.configure do |config|
    config.use_transactional_fixtures = false
    config.before(:suite) { require "#{Rails.root}/db/seeds.rb" }
    config.before(:each) do
      if Capybara.current_driver == :rack_test
        DatabaseCleaner.strategy = :transaction                                                                               
      else
        DatabaseCleaner.strategy = :truncation
      end
      DatabaseCleaner.start
    end

    config.after(:each) do
      if Capybara.current_driver == :rack_test
        DatabaseCleaner.clean
      else
        DatabaseCleaner.clean
        load "#{Rails.root}/db/seeds.rb"
      end 
    end 

  end
end

Spork.each_run do
  ActiveRecord::Schema.verbose = false
  load "#{Rails.root.to_s}/db/schema.rb"
  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
end

最佳答案

我不确定,但你可以尝试一下,

在您的 spec_helper.rb 文件中添加以下代码

require 'spork'
Spork.prefork do

   # This file is copied to spec/ when you run 'rails generate rspec:install'

  ENV["RAILS_ENV"] ||= 'test'
  require File.expand_path("../../config/environment", __FILE__)

  require 'rspec/rails'

  require 'rspec/autorun'

  require 'email_spec'


  # Add this to load Capybara integration:

  require 'capybara/rspec'
  require 'capybara/rails'

  # Database Cleaner
  #require 'database_cleaner'

  # DatabaseCleaner.strategy = :truncation


  # Requires supporting ruby files with custom matchers and macros, etc,
  # in spec/support/ and its subdirectories.

  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

Spork.each_run do
end

做一件事取消注释数据库清理器。

关于ruby-on-rails - Capybara javascript 驱动程序无法正常工作(env : Rspec, Spork、Capybara、Webkit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12025823/

相关文章:

ruby-on-rails - Rails 4.2.0.beta2 - 无法连接到 LocalHost?

mysql - rails : can't migrate database

ruby-on-rails - 移动设备的功能测试条件页面内容呈现

ruby-on-rails - 如何使用 rspec 在我的 Controller 的新操作中测试实例变量的分配?

ruby-on-rails - 自身具有多个条件和嵌套属性的 Rails Scope

ruby-on-rails - 帖 subview 中未显示评论验证错误

c - 在 C99 中使用检查单元测试框架时出现语法错误

python - 如何设置 coveragerc 和/或 setup.cfg 以测试具有特定测试位置的包

java - 在本地机器上为配置单元编写单元测试

ruby-on-rails - 通过与 Ruby-on-Rails 4.1 的关系在 RSpec 3.1.0 和 has_many 上遇到麻烦