2017-09-12 34 views
12

Test etmek için içinde kukla uygulaması ile "fantastik" adlı bir gemim var. Kukla uygulamayı çalıştırırken her şey iyi çalışıyor. Testleri çalıştırdığınızdaGem entegrasyon testleri jQuery ile başarısız oldu

Ancak, birim testleri çalışıyor, ancak entegrasyon testleri (Capybara + Poltergeist) iletisiyle başarısız:

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

benim bazı dosyalar:

fantastic.gemspec

# ... 
s.add_development_dependency "capybara" 
s.add_development_dependency "poltergeist" 
s.add_development_dependency "jquery-rails" 
# ... 

Spec/kukla/app/varlıklar/javascripts/şey raylar çalıştırırken sunucu her şey gayet iyi çalışıyor, ve jQuery düzgün yerleştirildiğinden emin (Ben bunu test edilir

//= require jquery // Error is produced in this line 
//= require jquery_ujs 
//= require fantastic 
//= require_tree . 

application.js tarayıcının konsolu).

Testlerde neler olduğuna dair bir fikrin var mı?

Ben özel bir Capybara.app oluşturma çalıştı

DÜZENLEME:

Spec/spec_helper.rb kukla uygulaması göz önüne alındığında spec/dummy/ klasöründe

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 

. Testleri

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 '

+1

Uygulamanızın olağandışı konumu nedeniyle, uygulama kökünün doğru bir şekilde algılanması mümkün değildir. Özel bir 'Capybara.app' ayarlamalısınız - Capybara'nın varsayılanı nasıl tanımladığını görün - https://github.com/teamcapybara/capybara/blob/master/lib/capybara/rails.rb –

+0

@ThomasWalpole Yardımlarınız için teşekkürler ama yine de çalışamıyorum. Daha fazla bilgi ekledim, girdinizi kullandım, düzenlememe bir göz atabilir misiniz lütfen? –

+0

Bu halka açık bir repo mü? (Rubygems.org'da fantastik olarak adlandırılan bir taş göremiyorum) –

cevap

6

Bu sorunu düzeltmek sona erdi budur çalıştırdığınızda

Ve bu olsun hatadır.

module Fantastic 
    class Engine < ::Rails::Engine 
    require 'jquery-rails' # <-- this line 

    isolate_namespace Megaphone 
    end 
end 
İlgili konular