Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 轨道&x2B;水豚+;poltergeist ArgumentError:机架测试需要机架应用程序,但未提供任何应用程序_Ruby On Rails_Ruby On Rails 4_Rspec_Capybara_Phantomjs - Fatal编程技术网

Ruby on rails 轨道&x2B;水豚+;poltergeist ArgumentError:机架测试需要机架应用程序,但未提供任何应用程序

Ruby on rails 轨道&x2B;水豚+;poltergeist ArgumentError:机架测试需要机架应用程序,但未提供任何应用程序,ruby-on-rails,ruby-on-rails-4,rspec,capybara,phantomjs,Ruby On Rails,Ruby On Rails 4,Rspec,Capybara,Phantomjs,我刚开始玩Capycabra+poltergeist,在执行Capy测试rspec./spec/features/test_spec.rb 我得到了以下错误: Failure/Error: visit '/item/new' ArgumentError: rack-test requires a rack application, but none was given 此外,我还有一些标准的rspec测试,每当我尝试执行所有测试时,rspec测试都会成功通过,但只有capy测试失败,并出现

我刚开始玩Capycabra+poltergeist,在执行Capy测试
rspec./spec/features/test_spec.rb
我得到了以下错误:

 Failure/Error: visit '/item/new'
 ArgumentError: rack-test requires a rack application, but none was given
此外,我还有一些标准的rspec测试,每当我尝试执行所有测试时,rspec测试都会成功通过,但只有capy测试失败,并出现奇怪的错误

ActionView::Template::Error: couldn't find file 'jquery.min' (in app/assets/javascripts/application.js:13)
这让我感到困惑

我在stackoverflow上查看了几个类似的线程,在某些情况下,错误是关于spec_helper.rb中缺少config.include Capybara::DSL,或者测试位置不正确。我做了适当的更改,但不起作用,错误仍然是一样的

My spec_helper.rb文件

require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'

Capybara.javascript_driver = :poltergeist

RSpec.configure do |config|
  config.include Capybara::DSL
end
spec_helper的完整版本:

测试文件:

#spec/features/test_spec.rb

require 'spec_helper'
describe 'accessibility of webpage' do
  it 'should access web page' do
    visit '/item/new'
    expect(page).to have_content("Something")
  end

end
想法?

  • 更新
根据报告(请参见评论),不再需要此解决方案,但我尚未检查它。


找到了解决方法

我必须指定应用程序主机url和默认驱动程序

#spec/spec_helper.rb

require 'capybara'
require 'database_cleaner'
require 'capybara/dsl'
require 'capybara/poltergeist'


Capybara.configure do |c|
  c.javascript_driver = :poltergeist
  c.default_driver = :poltergeist
  c.app_host = "http://localhost:3000"
end
更新1 要修复错误,请执行以下操作:

 Failure/Error: visit '/item/new'
 ArgumentError: rack-test requires a rack application, but none was given
我在Capy测试中包含了rails\u helper文件。测试的最终版本:

require 'rails_helper'
require 'spec_helper'

describe 'accessibility of webpage' do
  it 'should access web page' do
    visit '/item/new'
    expect(page).to have_content I18n.t("form_input.item.item_s")
  end
end
之后,由于某种原因,指定的应用程序主机url不再需要,可以从spec\u helperhelper文件中删除。最后版本:

Capybara.configure do |c|
  c.javascript_driver = :poltergeist
  c.default_driver = :poltergeist
end
spec_helper.rb的完整版本

错误
发生此事件的原因是gem“jquery rails”在我的Gemfile的测试范围中不可用,它仅在:development&:production环境中可用。我将gem'jqueryrails'移到了全局范围。Gemfile的完整版本:

使用最新版本的cabybara,它可以开箱即用。我关注了这篇文章,但无法让它工作,然后我删除了从这篇文章中复制的代码,然后一切都开始工作。@ProblemSlover:请编辑以包含rails\u helper.rb的内容好吗?也就是说,如果您仍然可以从您提出此问题时所处的状态访问源历史记录?
ActionView::Template::Error: couldn't find file 'jquery.min' (in app/assets/javascripts/application.js:13)