私は、 "fantastic"というダミーのアプリケーションとテスト中の宝石を持っています。ダミーアプリを実行すると、すべて正常に動作します。私がテストを実行するときjQueryでGem統合テストが失敗する
しかし、ユニットテストは正常に動作しますが、統合テスト(カピバラ+ポルターガイスト)がメッセージで失敗:
Sprockets::FileNotFound: couldn't find file 'jquery' with type 'application/javascript'.
Checked in these paths:
/fantastic/spec/dummy/app/assets/images, /fantastic/spec/dummy/app/assets/javascripts, /fantastic/spec/dummy/app/assets/stylesheets, /fantastic/app/assets/javascripts, /fantastic/app/assets/stylesheets, /fantastic/vendor/assets/javascripts
一部のファイル:
fantastic.gemspec
スペック/ダミー/アプリ/資産/ JavaScriptの/
//= require jquery // Error is produced in this line
//= require jquery_ujs
//= require fantastic
//= require_tree .
をapplication.jsものがレール・サーバを実行しているときすべてが正常に動作していることである、とjQueryは、(適切にロードされ、私はそれをテストしましたブラウザのコンソール)。
テストで何が起こっているのか考えてみましょうか?
EDIT
は、私は、カスタムCapybara.app
を作成してみました:
スペック/ spec_helper.rb
ENV["RAILS_ENV"] = 'test'
# Require dummy Rails app
require File.expand_path("../../spec/dummy/config/environment", __FILE__)
require 'database_cleaner'
require 'rspec/rails'
require 'capybara/rspec'
require 'capybara/poltergeist'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
require 'capybara/dsl'
Capybara.app = Rack::Builder.new do
map "/spec/dummy/" { run Rails.application }
end.to_app
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, {js_errors: false})
end
Capybara.javascript_driver = :poltergeist
RSpec.configure do |config|
# If true, the base class of anonymous controllers will be inferred
# automatically. This will be the default behavior in future versions of
# rspec-rails.
config.infer_base_class_for_anonymous_controllers = false
config.infer_spec_type_from_file_location!
end
をダミーアプリがspec/dummy/
フォルダ内にある与えられました。
そして、これは私がこの問題を修正終わったものですテスト
Failure/Error: expect(page).to have_content "Users" expected to find text "Users" in "Not Found: /users". (However, it was found 1 time using a case insensitive search.) # ./spec/features/record_updated_spec.rb:6:in `block (2 levels) in '
アプリの珍しい場所のため、アプリのルートが正しく検出されない可能性があります。カスタムの「Capybara.app」を設定する必要があるかもしれません - Capybaraがデフォルトをどのように定義しているかを見てください - https://github.com/teamcapybara/capybara/blob/master/lib/capybara/rails.rb –
@ThomasWalpoleしかし、私はまだそれを動作させることはできません。私はちょうどあなたの入力を使用して、より多くの情報を追加しました、あなたは私の編集を見てみることができますか? –
これは公開アクセス可能なレポですか? (私はrubygems.orgでfantasticと呼ばれる宝石は見ません) –