【问题标题】:Upgrading sprockets-rails gem breaks tests升级 sprockets-rails gem 中断测试
【发布时间】:2016-01-08 03:55:45
【问题描述】:

从 2.3.3 版本升级到sprockets-rails 3.0 版本后,下面的集成测试失败。它曾经通过但现在给出错误:Expected exactly 2 elements matching "img[src*='profile.gif']", found 0..

测试:

get user_path(@user1)
puts @response.body
assert_select "img[src*='profile.gif']", count: 2

puts @response.body 确认图像存在两次,因为正文包括两次:
src="/assets/account/profile-3454be0beae***256dab6d.gif"。然而测试失败了。

有人明白吗?又该如何解决呢?

【问题讨论】:

  • 尝试将config.assets.digest = false添加到config/environment/test.rb
  • 谢谢,那么测试确实通过了。你能解释一下吗?把这个加到环境配置中可以吗?
  • 我不知道为什么这个值在你的配置中默认是true,摘要只在生产环境中使用。但是我使用的是 sprockets 2.3.3,这个问题可能是 3.0 的行为导致的,所以更新后我似乎会遇到类似的问题。

标签: ruby-on-rails ruby-on-rails-4 testing rubygems sprockets


【解决方案1】:

更改似乎与rails 4 相关,如Asset Pipeline documentation 所述:

Rails 4 不再在 test.rb 中为 Sprockets 设置默认配置值, 所以 test.rb 现在需要 Sprockets 配置。旧的默认值 测试环境为:config.assets.compile = true, config.assets.compress = false,config.assets.debug = false 和 config.assets.digest = false。

因此,如果在测试环境中不需要摘要,则应在 config/environments/test.rb 文件中明确配置:

config.assets.digest = false

【讨论】:

    猜你喜欢
    • 2013-08-18
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2017-08-19
    相关资源
    最近更新 更多