当前位置: 首页 > 知识库问答 >
问题:

Gem集成测试失败,找不到jQuery

崔宜修
2023-03-14

我有一个叫做“奇妙”的宝石,里面有一个虚拟的应用程序来测试。运行虚拟应用程序时,一切正常。

但是,当我运行测试时,单元测试工作正常,但是集成测试(Capybara Poltergeist)失败,并显示以下消息:

链轮::FileNot找到:找不到类型为应用程序/javascript的文件jQuery。

签入以下路径:

/幻想/spec/dummy/app/assets/images、/fantastic/spec/dummy/app/assets/javascripts、/fantastic/spec/dummy/app/assets/stylesheets、/fantastic/vendor/assets/javascripts、/fantastic/app/assets/stylesheets、/javascripts

我的一些文件:

好极了宝石

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

spec/dummy/app/assets/javascripts/application。js

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

问题是,当运行rails服务器时,一切正常,jQuery加载正确(我在浏览器控制台中测试了它)。

知道测试中发生了什么吗?

编辑

我尝试创建一个自定义的Capybara.app

等级库/等级库辅助对象。铷

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/文件夹中。

这是我做测试时得到的错误

失败/错误:预期(第页)。要使_内容“用户”在“未找到:/Users”中找到文本“用户”。(但是,使用不区分大小写的搜索找到了1次。)/规格/特征/记录\u更新了\u规格rb:6:in‘分块(2级)’in’

共有1个答案

白智
2023-03-14

这就是最终解决问题的原因。

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

    isolate_namespace Megaphone
  end
end
 类似资料:
  • 我对Spring靴还不熟悉。我使用Spring靴1.5.1 GA和Spring靴的Neo4j启动器。我试图创建我的第一个集成测试,以确定是否可以将新对象插入到图形数据库中。这是我的测试课: PeristentTestContext专门用于测试数据库操作。在这个类中,我设置了用于测试的嵌入式驱动程序: } 不幸的是,当我从STS IDE运行测试时,甚至在测试可以验证之前,我就收到了以下错误消息: 当

  • 我有一个maven项目,它有一个名为“BlahITCase”的集成测试。该测试目前失败,进而导致“mvn安装”失败。这是预期的行为吗?我的理解是,单元测试(surefire)失败会导致构建失败,但集成测试(使用故障保护)失败不会。 我在我的pom的构建插件部分有以下内容: 注释出验证目标似乎给了我想要的行为。

  • 我在所有集成测试中不断收到异常,而单元测试运行良好。所有异常如下所示: 我正在使用Jupiter进行测试。我的观点的上述例外指向data.sql脚本,我必须填充一些数据。对我来说,语法似乎没问题,也运行良好,这意味着如果使用邮递员进行测试,会生成记录: 还考虑了Spring Boot可能存在的配置问题,所以我在gradle中添加了jdbc-starter依赖项。但它似乎仍然失败。 以下是测试的一部

  • 我的问题是:我是否应该修复我的单元测试,因为他们没有找到错误?单元测试不应该考虑其他类吗?我只是修改了我的生产性代码,因为集成测试覆盖这些内容就足够了。 编辑: 由于这些答复,似乎有必要进一步说明我的问题。我仍然不确定哪个测试负责什么。 好吧,我的测试有100%的代码复盖率,我创造的突变体被我的测试检测到,所以一切看起来都很好。 我的第二个类是一个处理程序,它负责在每次调用handler.next

  • 我正在使用Spring引导 1.3 开发一个 spring 应用程序 我有一个类似这样的MVC请求处理程序: 这是它的集成测试 删除了一些位以留出空间,但请注意顶部的@Transactional注释 它运行和通过没有线: 但是当添加它时,它给出了这个讨厌的异常,这是一个bean验证异常,没有任何数据插入操作(Spring mvc已经处理的验证错误和BindingResault中的结果) 当我在类级

  • 我从不编写集成测试,不明白我做错了什么?会是什么问题?按照我的理解,我应该像这样添加@componentscan或smth?