Tôi có một viên ngọc được gọi là "" tuyệt vời "với ứng dụng giả giả bên trong để kiểm tra. Khi chạy ứng dụng giả, mọi thứ hoạt động tốt.Kiểm tra tích hợp Gem thất bại với jQuery không tìm thấy
Tuy nhiên, khi tôi chạy thử nghiệm, kiểm tra đơn vị hoạt động tốt, nhưng các xét nghiệm hội nhập (Capybara + Poltergeist) thất bại với thông điệp:
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
Một số tác phẩm của tôi:
fantastic.gemspec
# ...
s.add_development_dependency "capybara"
s.add_development_dependency "poltergeist"
s.add_development_dependency "jquery-rails"
# ...
đặc tả/giả/app/tài sản/Javascripts/application.js
//= require jquery // Error is produced in this line
//= require jquery_ujs
//= require fantastic
//= require_tree .
Điều được rằng khi chạy ray máy chủ tất cả mọi thứ hoạt động tốt, và jQuery được nạp đúng cách (Tôi đã thử nghiệm nó trong giao diện điều khiển của trình duyệt).
Bất kỳ ý tưởng nào về những gì đang xảy ra trên các thử nghiệm?
EDIT
Tôi đã cố gắng tạo ra một tùy chỉnh Capybara.app
:
đặc tả/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
Với ứng dụng giả là trong spec/dummy/
thư mục.
Và đây là lỗi tôi nhận được khi tôi chạy thử nghiệm
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 '
Do vị trí bất thường của ứng dụng của bạn, có khả năng gốc ứng dụng không được phát hiện chính xác. Bạn có thể cần phải đặt tùy chỉnh 'Capybara.app' - xem cách Capybara định nghĩa mặc định - https://github.com/teamcapybara/capybara/blob/master/lib/capybara/rails.rb –
@ThomasWalpole Cảm ơn sự giúp đỡ của bạn nhưng tôi vẫn không thể làm được. Tôi vừa thêm thông tin khác, đã sử dụng dữ liệu nhập của bạn, bạn có thể xem bản chỉnh sửa của tôi không? –
Đây có phải là repo có thể truy cập công khai không? (Tôi không thấy một viên ngọc được gọi là tuyệt vời trong rubygems.org) –