Jasmine Rails,未从子目录加载 src_files

Posted

技术标签:

【中文标题】Jasmine Rails,未从子目录加载 src_files【英文标题】:Jasmine Rails, src_files not being loaded from subdirectory 【发布时间】:2021-03-24 00:13:14 【问题描述】:

宝石文件:

source 'https://rubygems.org'

ruby '2.6.6'
gem 'rails', '5.0.2'

gem "pry"

gem 'aasm'

gem 'figaro', '~> 1.0.0'
gem 'sucker_punch' , "~> 1.0"

gem 'stripe'
gem 'square.rb'
gem 'gon'
gem 'twilio-ruby'
gem 'nokogiri'

gem 'lograge' 

gem 'sass-rails'
# # Use Uglifier as compressor for javascript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
# gem 'coffee-rails', '~> 4.0.0' # doesn't work with rails 5
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer',  platforms: :ruby

gem 'platform-api' 

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0',          group: :doc

group: development do
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
end

gem 'pg', '~> 0.18'

group :production do
  gem 'rails_12factor', '0.0.2'
  gem 'newrelic_rpm'
  gem 'puma' 
  gem 'rack-timeout'
end

group :test do
    gem 'rspec-rails', '~> 3.5'
    gem 'factory_girl_rails'
    gem 'selenium-webdriver'
    gem 'capybara'
    gem 'faker' 
    gem 'launchy', '~> 2.4.2' 
    gem 'database_cleaner'
    gem 'jasmine', "2.6" 
    gem 'jasmine-jquery-rails'
end

这就是我的 JS 文件夹的组织方式

> assets/javascripts
  > 0_global
    > utility.js
    > ...
  > 2_place_order
    > cart.js
    > item.js
    > ...
  > 0_global.js
  > 2_place_order.js

其中assets/javascripts文件夹中的***.js文件需要对应的目录。即,

0_global.js

    //= require_directory ./0_global

2_place_order.js

    //= require_directory ./2_place_order

我无法将此设置与我的茉莉花一起使用。所以在jasmine.yml 中,我需要*** js 文件,因为该文件已经需要目录,它应该加载,但它没有。即,以下不起作用:

src_files:
  - assets/0_global.js
  - assets/2_place_order.js

有没有其他方法可以让它发挥作用?我也试过:

src_files:
  - assets/0_global/*.js
  - assets/2_place_order/*.js

需要设置jasmine.yml 中的目录,但这也不起作用。想尽量不用枚举子目录下的每一个js文件。

谢谢!

【问题讨论】:

sprockets/railtie 包含在您的 Gemfile 中。 你在运行 jasmine 时遇到了什么错误,你能把它包括在你的问题中吗 @chandan 问题是我没有收到错误,真的,它只是说找不到某些功能ReferenceError 所以我只知道它没有被加载。如果我抛出一个console.log,我有进一步的证据表明它未加载。我没有使用sprockets or railtie 你能分享你的Gemfile @Chandan 添加了它 【参考方案1】:

我对茉莉花一无所知,但看着homepage 似乎jasmine.yml 会期望字符串被引用:

# minimalist jasmine.yml configuration when leveraging asset pipeline
spec_files:
   - "**/*[Ss]pec.js,coffee"

【讨论】:

其实我的文档中的任何一个都可以,不过谢谢

以上是关于Jasmine Rails,未从子目录加载 src_files的主要内容,如果未能解决你的问题,请参考以下文章

Karma/Jasmine 测试失败并出现错误:'未捕获的错误:尚未为上下文加载模块名称“simple_test.js”:_。使用要求([])'

QML 从子目录导入样式文件

使用 Jasmine 和 Rails 3.1 测试 Coffeescript

针对 Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [关闭]

从子目录加载新站点作为索引

从子目录加载视网膜图像